jQuery $(this)里面的函数

use*_*762 2 javascript jquery this-pointer

我想将$(this)传递给函数,但我不确定.有一个类似的线程,但我仍然无法使其工作.我希望有人可以帮助我.

$(document).ready(function() {
  var delay = (function(){
    var timer = 0;
    return function(callback, ms){
      clearTimeout (timer);
      timer = setTimeout(callback, ms);
    };
  })();

  $('input').keyup(function() {
      delay(function(){
        alert($(this).val());
      }, 1000 );
  });
});
Run Code Online (Sandbox Code Playgroud)

Har*_*men 6

你应该保存对此的引用:

$('input').keyup(function() {
    var $this = $(this);
    delay(function(){
      alert($this.val());
    }, 1000 );
});
Run Code Online (Sandbox Code Playgroud)

另一个选择是重新绑定this到该函数:

  $('input').keyup(function() {
      delay(function(){
        alert($(this).val());
      }.bind(this), 1000 );
  });
Run Code Online (Sandbox Code Playgroud)