延迟slideDown()/ slideUp() - jquery下拉列表

时间:2010-10-11 13:50:20

标签: javascript jquery

我正在创建我正在创建一个下拉列表,我想延迟大约250毫秒,这样当有人快速滚动按钮时它就不会被触发。

这是我目前的代码。我尝试使用delay()方法但是进展不顺利。

$(".deltaDrop").hover(function(){
    $('.deltaDrop ul').stop(false,true).slideDown(250);
    $('.delta').css('background-position','-61px -70px');
},function(){
    $('.deltaDrop ul').stop(false,true).slideUp(450);
    $('.delta').css('background-position','-61px 0');
});

由于

4 个答案:

答案 0 :(得分:4)

var timer;
timer =     setTimeout(function () {
                    -- Your code goes here!
                }, 250);

然后你可以像这样使用clearTimeout()函数。

 clearTimeout(timer);

答案 1 :(得分:2)

这应该有用。

$(".deltaDrop").hover(function(){
    $('.deltaDrop ul').stop(false,true).hide(1).delay(250).slideDown();
    $('.delta').css('background-position','-61px -70px');
},function(){
    $('.deltaDrop ul').stop(false,true).show(1).delay(450).slideUp();
    $('.delta').css('background-position','-61px 0');
});

.delay仅在您处理动画队列时有效。不带参数的.hide().show()不与动画队列交互。通过在.hide(1)之前添加.show(1).delay(),幻灯片动画会在队列中等待。

答案 2 :(得分:0)

  setTimeout(function() {
    $('.deltaDrop ul').slideDown()
  }, 5000);

答案 3 :(得分:0)

未经测试,未经考虑:

$(".deltaDrop")
  .hover(
    function()
    {
      var timeout = $(this).data('deltadrop-timeout');

      if(!timeout)
      {
        timeout =
          setTimeout(
            function()
            {
              $('.deltaDrop ul').stop(false,true).slideDown(250);
              $('.delta').css('background-position','-61px -70px');
              $('.deltaDrop').data('deltadrop-timeout', false);
            },
            250
          );
        $(this).data('deltadrop-timeout', timeout);
      }
    },
    function()
    {
      var timeout = $(this).data('deltadrop-timeout');
      if(!!timeout)
      {
        clearTimeout(timeout);
        $('.deltaDrop').data('deltadrop-timeout', false);
      }
      else 
      {
        $('.deltaDrop ul').stop(false,true).slideUp(450);
        $('.delta').css('background-position','-61px 0');
      }
    }
  );