2011-03-04 7 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> 

자바 스크립트 :

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

우리가이 실행되고있는 JS 몇 가지 예를 들어 HTML을 볼 수 있을까요? 어딘가에 루프가 생기 겠지만, HTML을 보지 않고 어디에서 정보를 얻는지는 어렵습니다. –

+0

문제는 5000 라인의 신문 한 페이지에 통합되어있어 정보를 제공하지 않습니다. – Patrice

+0

코드에 디버깅을 추가 할 수 있습니까? 귀하의 페이지에 많은 수의 요소가 있고 스택에 추가되어 어떤 작업을 수행하는 것처럼 보입니다. 또는 데모 페이지를 제공하여 살펴볼 수 있습니까? –

답변

0

$('#leiki_menu a').mouseenter(function()와 유사한 변경 시도 :

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