2011-03-04 115 views
0

我有一個jQuery的遞歸太多的問題,並在IE中彈出堆棧溢出,它可以是什麼?太多遞歸jquery

這裏我的代碼

HTML:

<div id="leiki_tabs"> 
<div id="leiki_container"> 
<ul id="leiki_menu"> 
    <li style="width:100px;border-right:1px dotted #333;border-bottom:1px dotted #333;text-align:center;"><a id="title_leiki_panel_1" href="#" rel="leiki_panel_1">Today</a></li> 
    <li style="width:100px;border-right:1px dotted #333;border-bottom:1px dotted #333;text-align:center;"><a id="title_leiki_panel_2" href="#" rel="leiki_panel_2">This Month</a></li> 
    <li style="width:100px;border-right:1px dotted #333;border-bottom:1px dotted #333;text-align:center;"><a id="title_leiki_panel_3" href="#" rel="leiki_panel_3">Archive</a></li> 

    <li style="width:270px;"/> 
    <li id="leiki_logo_tab_menu"><a href="#" rel="leiki_panel_5" ><img id="leiki_logo" style="border:0px;" src="leikiLogo_onMouseOver.png"/></a></li> 
</ul> 
</div> 

<!--Panel Contents Start--> 
<div id="leiki_panel_1" class="leiki_panel"> 
    <ul class="leiki_panel_ul"> 
    <li class="leiki_panel_li"><div class="leiki_left"><Article 1</div></li> 
    <li class="leiki_panel_li"><div class="leiki_left">Article 2</div></li> 
    <li class="leiki_panel_li"><div class="leiki_left">Article 3</div></li> 
    <li class="leiki_panel_li"><div class="leiki_left">Article </div></li> 
    <li class="leiki_panel_li"><div class="leiki_left">Article 5</div></li> 
    </ul> 
</div> 

的Javascript:

var opened_one = null; 
$(function(){ 
    $('div[id*="leiki_panel"]').hide(); 
    $('div[id="leiki_panel_1"]').show(); 
    $('#title_leiki_panel_1').addClass("leiki_menu_highlight"); 
    $('#leiki_menu a').mouseenter(function(){ 
     $('a[id*="title_leiki_panel"]').removeClass("leiki_menu_highlight"); 
     if(opened_one==null){$('div[id="leiki_panel_1"]').hide();} 
     $(opened_one).hide(); 
     var link_rel = $(this).attr('rel'); 
     $('div#' + link_rel).show(); 
     opened_one = $('div#' + link_rel); 
     var tab = "title_" +link_rel; 
    }).mouseleave(function(){ 
     var link_rel = $(this).attr('rel'); 
     var tab = "title_" +link_rel; 
     if(tab=="title_leiki_panel_1" || 
     tab=="title_leiki_panel_2" || 
     tab=="title_leiki_panel_3" || 
     tab=="title_leiki_panel_4" || 
     tab=="title_leiki_panel_5"){ 
     $("#"+tab).addClass("leiki_menu_highlight");} 
    }); 
}); 

它的工作我的桌面上沒有問題,但是這是由我們的客戶擁有了它給我的測試服務器上這個錯誤太多遞歸。我不能發佈測試服務器的地址,但可能在私人消息。

乾杯

+0

我們可以看到一些例如HTML,這個JS運行呢?它會在某個地方進入一個循環,但很難在沒有看到HTML的情況下知道其中的位置。 – 2011-03-04 10:33:05

+0

問題在於它集成在5000行報紙的頁面中,它可以給我提供信息:s – Patrice 2011-03-04 10:41:45

+0

您可以在代碼中添加一些調試嗎?它看起來好像頁面中有大量元素,並且正在添加到堆棧以執行某些任務。或者你能否提供演示頁面,以便我們看看? – 2011-03-04 10:33:34

回答

0

嘗試改變$('#leiki_menu a').mouseenter(function()和類似到:

$('#leiki_menu').delegate('a', 'mouseenter', function(){ 
    // ... 
}).delegate('a', 'mouseleave', function(){ 
    // ... 
});