hoverIntent кнопка закрытия (проблема с таймаутом?)

#jquery #hoverintent

#jquery #hoverintent

Вопрос:

Я использую hoverIntent с сумкой для покупок (#bagContainer), и все работает нормально.

 function bagOver(){
    $(this).find("#bagContainer").stop().fadeTo('fast', 1).show(); 
}
function bagOut(){
  $(this).find("#bagContainer").stop().fadeTo('fast', 0, function() {
      $(this).hide();
  });
}
var bagHoverConfig = {
     over: bagOver,
     bagTimeout: 3000, 
     out: bagOut 
};
$("#userBox .row:nth-child(2)").hoverIntent(bagHoverConfig);
  

Но мне нужно добавить «дополнительную» кнопку закрытия (#bagCollapser) внутри пакета, что-то вроде:

 $("#bagCollapser").click(function () {
    $('#bagContainer').hide();
});
  

Он закрывает #bagContainer, но, похоже, есть конфликт с hoverIntent:

  1. кнопка скрывает пакет, но затем, после bagTimeout , hoverIntent скрывает его снова
  2. если пакет был закрыт с помощью кнопки, он не может быть показан снова, пока не истечет время ожидания / задержки hoverIntent…

Есть идеи?

Заранее большое спасибо!

Ответ №1:

У меня такая же проблема, я использую hoverIntent для отображения мегаменю. Внутри этого мегаменю я создал кнопку закрытия :

 $("#closebutton").click(function () {
  $('#megasubmenu').hide();
  $('#megasubmenu').closest('li.level0').find('a.level0').removeClass("megahover");
});
  

Кнопка закрытия закрывает подменю, но функция hoverIntent все еще работает, потому что, как только происходит перемещение мыши, подменю появляется снова…