Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 延迟slideDown()/slideUp()-jquery下拉列表_Javascript_Jquery - Fatal编程技术网

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

Javascript 延迟slideDown()/slideUp()-jquery下拉列表,javascript,jquery,Javascript,Jquery,我正在创建我正在创建一个下拉列表,我想延迟大约250毫秒,这样当有人快速滚动按钮时它不会被触发 这是我目前的密码。我尝试使用delay()方法,但效果不佳 $(".deltaDrop").hover(function(){ $('.deltaDrop ul').stop(false,true).slideDown(250); $('.delta').css('background-position','-61px -70px'); },function(){ $('.de

我正在创建我正在创建一个下拉列表,我想延迟大约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');
});
谢谢

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

 clearTimeout(timer);
然后可以像这样使用clearTimeout()函数

 clearTimeout(timer);

未经测试、未考虑因素:

$(".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');
      }
    }
  );

未经测试、未考虑因素:

$(".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');
      }
    }
  );
这应该行得通

$(".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');
});
仅在处理动画队列时有效<没有参数的code>.hide()和
.show()
不会与动画队列交互。通过在
.delay()
之前添加
.hide(1)
.show(1)
,幻灯片动画将在队列中等待

这应该行得通

$(".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');
});

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

附言:我真的不想要一个完整的答案,只要给我指出正确的方向:)附言:我真的不想要一个完整的答案,只要给我指出正确的方向:)太好了!这正是我需要的!很抱歉,我无法“更新”你的答案,但我没有足够的代表。这个答案是有问题的,因为如果你来回移动鼠标,每个鼠标上方都会实例化一个计时器,它会表现得很疯狂。太棒了!这正是我需要的!很抱歉,我无法“更新”您的答案,但我没有足够的重复次数。此答案有问题,因为如果您来回移动鼠标,将为每个鼠标指针实例化一个计时器,它将表现为疯狂。