将变量作为参数传递给jQuery匿名函数
我想将函数中包含的变量传递给它的子函数,但它不起作用。它表示该值为将变量作为参数传递给jQuery匿名函数,jquery,Jquery,我想将函数中包含的变量传递给它的子函数,但它不起作用。它表示该值为未定义 $('.search input text').keyup(函数(e){ e、 预防默认值(); var i=$(this.attr('data-column'); var v=$(this.val(); $('#commandHistory')。延迟(200)。队列(函数(v,i){ 警戒(五); commandHistoryTable.columns(i).search(v.draw(); }); }); 不能将参数传
未定义
$('.search input text').keyup(函数(e){
e、 预防默认值();
var i=$(this.attr('data-column');
var v=$(this.val();
$('#commandHistory')。延迟(200)。队列(函数(v,i){
警戒(五);
commandHistoryTable.columns(i).search(v.draw();
});
});
不能将参数传递给jQuery的匿名函数。逻辑中的问题是因为您将队列
处理程序函数中的v
范围更改为参数,而不是外部范围中的v
值
要解决此问题,您只需将函数的v
参数重命名为其他参数,并使用父范围中定义的v
:
$('.search-input-text').keyup(function(e) {
e.preventDefault();
let i = $(this).data('column');
let v = $(this).val();
$('#commandHistory').delay(200).queue(function(_, i) {
console.log(v);
commandHistoryTable.columns(i).search(v).draw();
});
});
还请注意在attr()
上使用data()
从HTML中读取data
属性