質問

誰かがこの簡単なコードで私を助けてくれますか。私はまだJSのnoobであり、何が間違っているのかわかりません。基本的に、マウスオーバーメニューを作成しようとしています。

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);
});

マウスオーバーは機能しますが、マウスがリンクコンテナの外側にあるときにコードを実行しません。

役に立ちましたか?

解決

var mnuTimeout = null;

$(function() { 
   $("#quick-links-dd").hover() {
       clearTimeout(mnuTimeout);
       showQuickLinks();
   }, function() {  
      mnuTimeout = setTimeout(hideQuickLinks,1000);
   });
});

他のヒント

あなたは「?」を逃していますか?

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

失われたオンマウスアウトイベントで断続的な問題がありました。私の最終的な解決策は、周囲の要素にマウスオーバーイベントを追加し、ポップアップもキャンセルすることでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top