我想执行一个函数,该函数的名称是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)
有帮助吗?
答案 0 :(得分:2)
在不确切知道$('.imgact')
是什么的情况下,很难知道它应该是什么。不过,我会猜测这是输入,所以如果我错了,请纠正我。
问题是您正在尝试发送jquery确实不想让您发送的数据。 $('.imgact')
是一个元素,如果它是输入,我们可能希望它的 value 而不是元素本身。
它看起来像这样:
$('#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>