2015-06-04 4 views
0

Моя проблема заключается в: Если вы идете от 2014 по декабрь и мышь проходит над , то год меняется к 2015.I необходимо добавить небольшую задержку так год остается 2014.задержка добавить по наведению - меню JQuery

здесь jsfiddle demo demo link Примечание: наведите указатель на Past Events.

$(".dropdown-menu > li > a.trigger").on("mouseover",function(e){ 
    var current=$('.dropdown-menu > li > a.trigger').next(); 
    var grandparent=$('.dropdown-menu > li > a.trigger').parent().parent(); 
    if($('.dropdown-menu > li > a.trigger').hasClass('left-caret')||$('.dropdown-menu > li > a.trigger').hasClass('right-caret')) 
     $('.dropdown-menu > li > a.trigger').toggleClass('right-caret left-caret'); 
     grandparent.find('.left-caret').toggleClass('right-caret left-caret'); 
     grandparent.find(".sub-menu:visible").hide(); 
     current.fadeIn(200); 
    e.stopPropagation(); 
}); 

ответ

1

Попробуйте что-нибудь в этом направлении.

var selected = null; 
var queued = null; 
$(".dropdown-menu > li > a.trigger").on("mouseover", function (e) { 
    if (selected !== this) { 
     addQueue(this); 
    } else { 
     // the rest of your code! 
    } 
}); 

function addQueue($el) { 
    queued = $el; 
    setTimeout(function() { 
     if (queued === $el) { 
      selected = $el; 
      $el.trigger('mouseover'); 
     } 
    }, 500); 
} 
+0

Я пробовал, но не работал. все та же старая вещь, которую я получил –

0

Самый простой реализации может быть использовать плагин JQuery под названием HoverIntent

http://cherne.net/brian/resources/jquery.hoverIntent.html

Ваш JS будет просто:

$(".dropdown-menu > li > a.trigger").hoverIntent(function(e){ 
    // Do Stuff... 
}); 

Таким образом, слушатель будет только огонь, когда пользователь нависает над элементом достаточно долго при достаточно низкой скорости мыши.

Смежные вопросы