سؤال

أقوم بإنشاء إنشائها منسقًا أريد أن أرغب في تأخير حوالي 250 مللي ثانية حتى لا يتم تشغيله عندما يقوم شخص ما بسرعة بالتمرير عبر الزر.

هذا هو الكود الحالي الخاص بي. حاولت استخدام طريقة التأخير () لكنها لن تسير على ما يرام.

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

شكرًا

هل كانت مفيدة؟

المحلول

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

ثم يمكنك استخدام وظيفة ClearTimeOut () مثل هذا.

 clearTimeout(timer);

نصائح أخرى

هذا يجب أن يعمل.

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

.تأخير يعمل فقط عندما تتعامل مع قائمة انتظار الرسوم المتحركة. .hide() و .show() بدون حجج لا تتفاعل مع قائمة انتظار الرسوم المتحركة. عن طريق إضافة .hide(1) و .show(1) قبل .delay() يجعل الرسوم المتحركة الشريحة تنتظر قائمة الانتظار.

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

لم يتم تجربته ، غير مفعول:

$(".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');
      }
    }
  );
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top