将变量作为参数传递给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
属性