2011-11-11 11 views
0

私のメニューが間違ってタイムアウトしている理由はよく分かりません。メニュー見出しの上にマウスを置くとドロップダウンが表示されるとすぐに、そのサブメニューが点滅し、そこからリンクを選択することはできません。なぜどんなアイデア?私はこれについてあまりにも長い間働いてきました。ドロップダウンメニューのタイムアウトの問題

var menuTimeout = ''; 
$('.nav_click').bind({ 
mouseover: function(){ 
    if($(this).hasClass('submenus') == true){ 
     var whichMenu = $(this).attr('id'); 
     var displayMenu = '';//yes its blank for a reason 
     if(whichMenu == 'navi2'){displayMenu = 'menu1';} 
     if(whichMenu == 'navi3'){displayMenu = 'menu2';} 
     if(whichMenu == 'navi4'){displayMenu = 'menu3';} 
     if(whichMenu == 'navi5'){displayMenu = 'menu4';} 
     if(displayMenu != '') 
     { 
      var leftOffset = ($(this).position().left-5); 
      var topOffset = ($(this).offset().top+$(this).height()-10); 
      $('#'+displayMenu).css({"display":"block", "position":"absolute", "left":leftOffset+"px", "top":topOffset+"px"}); 
     } 
    } 
    var menuitem = $(this).attr('id'); 
    if(menuitem == "navi1"){$(this).css({"background-position":"0 -63px"});} 
    if(menuitem == "navi2"){$(this).css({"background-position":"-100px -63px"});} 
    if(menuitem == "navi3"){$(this).css({"background-position":"-230px -63px"});} 
    if(menuitem == "navi4"){$(this).css({"background-position":"-420px -63px"});} 
    if(menuitem == "navi5"){$(this).css({"background-position":"-524px -63px"});} 
    if(menuitem == "navi6"){$(this).css({"background-position":"-638px -63px"});} 
    if(menuitem == "navi7"){$(this).css({"background-position":"-737px -63px"});} 
}, 
mouseout: function(){ 
    if($('.submenublock').is(":visible") == true){menuTimeout = setInterval(function() {$('.submenublock').fadeOut('slow').css({"display":"none"}); clearInterval(menuTimeout);}, 1500);} 
    var menuitem = $(this).attr('id'); 
    if(menuitem == "navi1"){$(this).css({"background-position":"0 0"});} 
    if(menuitem == "navi2"){$(this).css({"background-position":"-100px 0"});} 
    if(menuitem == "navi3"){$(this).css({"background-position":"-230px 0"});} 
    if(menuitem == "navi4"){$(this).css({"background-position":"-420px 0"});} 
    if(menuitem == "navi5"){$(this).css({"background-position":"-524px 0"});} 
    if(menuitem == "navi6"){$(this).css({"background-position":"-638px 0"});} 
    if(menuitem == "navi7"){$(this).css({"background-position":"-737px 0"});} 
}, 
click: function(){ 
    window.location = $(this).attr('rel'); 
} 

}); 
$('.submenublock ul').bind({ 
mouseover: function(){ 
clearInterval(menuTimeout); 
}, 
mouseout: function(){ 
menuTimeout = setInterval(function()                {$('.submenublock').fadeOut('slow').css({"display":"none"}); clearInterval(menuTimeout);}, 500); 
} 
}); 

答えて

0

おそらくmouseoverハンドラがmouseoutハンドラをトリガしているためです。 「マウスアウト」のコードを作る

$('#'+displayMenu).css({"display":"block", "position":"absolute", "left":leftOffset+"px", "top":topOffset+"px"} 

これはトップレベルの項目が(何らかの理由で)フォーカスを失うことになり、:

次のコードは、最終的に実行されます、トップレベルの項目の上に置くとすぐに火を消して、わずか0.5秒で開いたメニューをフェードアウトします。

私はマウスアウトで/ディレイラインをフェードアウトをコメントアウトしようと、この動作が停止した(許可され、メニューがいずれか離れて行くことはありませんが、私たちは、問題を正確に示している)

mouseout: function(){ 
    // if($('.submenublock').is(":visible") == true){menuTimeout = setInterval(function() {$('.submenublock').fadeOut('slow').css({"display":"none"}); clearInterval(menuTimeout);}, 1500);} 
それはそれをやっている方法
+0

? –

+0

おそらく、mouseoverを含むdivの子ではない、マウスの下の別のdom要素を非表示/移動/表示していますか?それはマウスアウトを引き起こします。 – James

+0

ここにウェブサイトがありますkansasoutlawwrestling.com –

関連する問題