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