7

我有一个通过单击另一个按钮触发的按钮。我想延迟点击第二个按钮两秒钟。我使用了 .delay() 但它没有用。

jq(function() {
      jq('a.box').click(function() {
         jq(this).closest('.button').find('.add_this').delay(2000).click();
      })
    });

或使用 setTimeout;

jq(function() {
      jq('a.box').click(function() {
      setTimeout(function(){
         jq(this).closest('.button').find('.add_this').click();
      },800);
      });
    });

但是没有用。

4

1 回答 1

17

来自文档http://api.jquery.com/delay/

.delay() 方法最适合在排队的 jQuery 效果之间进行延迟。因为它是有限的——例如,它不提供取消延迟的方法——.delay() 不能替代 JavaScript 的本机 setTimeout 函数,这可能更适合某些用例。

您可以setTimeout在延迟后使用绑定点击处理程序

setTimeout(function(){

jq('a.box').closest('.button').find('.add_this').click();
},2000);

编辑

jq(function() {
      jq('a.kklike-box').click(function() {
      $this = $(this);
      setTimeout(function(){
         $this.closest('.deal_buttons').find('.add_this').click();
      },800);
      });
    });
于 2013-02-04T03:25:40.850 回答