JQuery при наведении мыши на меню с использованием setTimeout - PullRequest
0 голосов
/ 16 сентября 2010

Может кто-нибудь помочь мне с этим простым кодом ... Я все еще новичок на JS, и я не знаю, что я делаю неправильно. По сути, я пытаюсь сделать меню при наведении курсора.

function showQuickLinks() {
//show the menu
}
function hideQuickLinks() {
//hides the menu
}

//button mouseover
$("#quick-links-dd").mouseover(function() { 
 showQuickLinks();
});

var mnuTimeout;

//clears timeout when it rolls over the button
$("#quick-links-dd").mouseover(function () {        
   clearTimeout(mnuTimeout);    
})

//$("#quick-links) - quick links container
//hides the menu when the mouse is not over the container
$("#quick-links").mouseout(function () {
  mnuTimeout = setTimeout("hideQuickLinks()",1000);
});

Курсор работает, но он не выполняет код, когда мышь находится вне контейнера ссылок.

Ответы [ 3 ]

0 голосов
/ 16 сентября 2010
var mnuTimeout = null;

$(function() { 
   $("#quick-links-dd").hover() {
       clearTimeout(mnuTimeout);
       showQuickLinks();
   }, function() {  
      mnuTimeout = setTimeout(hideQuickLinks,1000);
   });
});
0 голосов
/ 16 сентября 2010

У меня периодически возникали проблемы с потерянными событиями onmouseout. Мое возможное решение состояло в том, чтобы добавить события наведения мыши на окружающие элементы и заставить их также отменить всплывающее окно.

0 голосов
/ 16 сентября 2010

Вам не хватает "?

("#quick-links").mouseout(function () {
  mnuTimeout = setTimeout("hideQuickLinks()",1000);
});
...