我想执行一个名称为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)

有什么帮助吗?

最佳答案

不确切知道$('.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>

10-04 22:39
查看更多