自动点击不适用于超时,并且每个

时间:2019-02-12 17:34:00

标签: jquery

我有一个要求我要延迟单击的要求。 我想在每个循环延迟后触发点击事件。

var j = 0;
$(".classname").each(function(index) {
setTimeout(function(){
  j = j + 1000;
  $(this).click();
},j);
});

我不明白为什么它不起作用。点击根本不会发生。 但是,如果我删除延迟,则它可以正常工作。

var j = 0;
$(".classname").each(function(index) {

  j = j + 1000;
  $(this).click();

});

1 个答案:

答案 0 :(得分:0)

$(this)的范围对于每个功能都是不同的。

您应该将引用“保存”在变量中,然后在超时函数中使用它:

var j = 0;
$(".classname").each(function(index) {

  var x = $(this); // LET's STORE this IN x

  setTimeout(function(){
    j = j + 1000;
    $(x).click();
  },j);
});