使用.delay()延迟单击事件

时间:2013-02-04 03:13:17

标签: jquery delay timedelay

我有一个按钮,通过点击另一个按钮触发。我想延迟点击第二个按钮两秒钟。我使用.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);
      });
    });

但没效果。

1 个答案:

答案 0 :(得分:13)

来自文档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);
      });
    });