首页 > 解决方案 > 以名称作为 div 的数据值的函数

问题描述

我想执行一个名称是 div 的数据属性值的函数:

$('#dgok').click(function() {
    var fn = $(this).attr('data-fn');
    window[fn]();
});

function delimg(){
    console.log('james'); // this works     
    let src = $('.imgact');
    let afn = 'store';
    $.post('images-pro.php', {afn, src}, function(data){  // line 75
        console.dir(data);
    });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='dgok' data-fn='delimg'>OK</div>

TypeError: Illegal invocation...at delimg (images.js:75)

有什么帮助吗?

标签: javascriptjquery

解决方案


不知道到底是什么$('.imgact'),很难知道它应该是什么。不过,我猜这是一个输入,如果我错了,请纠正我。

问题是您正在尝试发送 jquery 真的不想让您发送的数据。$('.imgact')是一个元素,如果它是一个输入,我们可能想要它的而不是元素本身。

看起来像这样:

$('#dgok').click(function() {
    var fn = $(this).attr('data-fn');
    window[fn]();
});

function delimg(){
    console.log('james'); // this works     
    let src = $('.imgact').val();
    let afn = 'store';
    $.post('images-pro.php', {afn, src}, function(data){  // line 75
        console.dir(data);
    });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class".imgact" />
<div id='dgok' data-fn='delimg'>OK</div>


推荐阅读