2014-07-11 4 views
-2

jQuery를 통해 메뉴 막대/하위 막대 내용을 동적으로로드하는 div 태그가있는 웹 페이지가 있습니다 (여러 페이지에로드 할 수 있도록 외부 컨텐츠를 원합니다). 이 페이지에는 마우스가 메뉴 막대의 특정 부분 (예 : msn.com)에있을 때 메뉴 막대 내용을 변경하는 jQuery 함수가 있습니다.동적으로로드 된 html에 jQuery가 작동하지 않습니다.

문제는 콘텐츠가로드되지만 jQuery가 작동하지 않습니다 (.on() 함수 사용). 함수의 첫 번째 부분에는 사용자가 마우스로 가리키는 메뉴 항목을 기반으로하는 하위 메뉴가 표시됩니다. 함수의 두 번째 부분은 마우스 오버 메뉴 항목의 배경색을 설정하고 다른 항목의 색상을 원본으로 다시 설정합니다.

페이지에 콘텐츠를 직접 입력하면 정상적으로 작동합니다. 이 문제를 이해할 수 없으므로 도움을 주시면 감사하겠습니다.

HTML - 내용은 각 사업부에 동적으로로드

<tr> 
    <td align="center" valign="middle"> 
     <div id="menubar_index"> 
      <!--menubar contents are loaded dynamically--> 
     </div> 

    </td> 
</tr> 
<tr> 
    <td align="center" valign="middle"> 
     <div id="menubar_sub"> 
      <!--menubar contents are loaded dynamically--> 
     </div> 

    </td> 
</tr> 
첫번째 사업부 (menubar_index)에로드

HTML 내용 :

<div class="topgradientblueline"> 

    <div id="wrapper"> 
     <div id="menuspacer"> 
      &nbsp; 
     </div> 
     <div id="dmsmenu" style="font-family:Sans-Serif; font-size:small; "> 
      Document Management Solutions 
     </div> 
     <div id="lsTMFmenu" style="font-family:Sans-Serif; font-size:small; "> 
      Life Science TMF Solutions 
     </div> 
     <div id="lssampmenu" style="font-family:Sans-Serif; font-size:small; "> 
      Life Science Sampling Solutions 
     </div> 
     <div id="drsmenu" style="font-family:Sans-Serif; font-size:small; "> 
      About DRS 
     </div> 
    </div>     

</div> 

HTML의 함유량에로드 두 번째 div (menubar_sub) :

페이지에있는 123,165,

jQuery를 :

<script type="text/javascript"> 

$(document).ready(function(){ 
    $("#menubar_index").load("menubar_index.html"); 
    $("#menubar_sub").load("menubar_sub.html"); 
    $("#menubar_ims").load("menubar_ims.html"); 
    $("#pageheader").load("page_header.html"); 
    $("#footer_news").load("footer_news.html"); 
    $("#vmenubar_ims").load("vmenubar_ims.html"); 
    $("#vmenubar_tmfps").load("vmenubar_tmfps.html"); 
    $("#pagefooter").load("page_footer.html"); 
    }); 

     //jquery to show & hide divs 
     $(document).ready(function() { 


//   doc mgmt slns menu item 
      $("#dmsmenu").on("mouseenter", function() { 

//    hide/show sub menus 
        $("#dmssubmenu").show(); 
        $("#lsTMFsubmenu").hide(); 
        $("#lssampsubmenu").hide();     
        $("#drssubmenu").hide(); 

//    set background(white), text(orange) and cursor(pointer) of this item 
        $(this).css('background', '#ffffff') 
        $(this).css('color', '#DF7401'); 
        $(this).css('cursor', 'pointer'); 

//    set background(blue), text(white) of all other menu items 
        $("#lsTMFmenu").css('background', '#0A0A2A'); 
        $("#lsTMFmenu").css('color', '#ffffff'); 
        $("#lssampmenu").css('background', '#0A0A2A'); 
        $("#lssampmenu").css('color', '#ffffff'); 
        $("#drsmenu").css('background', '#0A0A2A'); 
        $("#drsmenu").css('color', '#ffffff'); 

      }); 

//   life sci TMF slns menu item    
      $("#lsTMFmenu").on("mouseenter", function() { 

//    hide/show sub menus 
        $("#lsTMFsubmenu").show(); 
        $("#dmssubmenu").hide(); 
        $("#lssampsubmenu").hide();    
        $("#drssubmenu").hide(); 

//    set background(white), text(orange) and cursor(pointer) of this item     
        $(this).css('background', '#ffffff');     
        $(this).css('color', '#DF7401'); 
        $(this).css('cursor', 'pointer'); 

//    set background(blue), text(white) of all other menu items     
        $("#dmsmenu").css('background', '#0A0A2A'); 
        $("#dmsmenu").css('color', '#ffffff'); 
        $("#lssampmenu").css('background', '#0A0A2A'); 
        $("#lssampmenu").css('color', '#ffffff'); 
        $("#drsmenu").css('background', '#0A0A2A'); 
        $("#drsmenu").css('color', '#ffffff'); 

      }); 

//   life sci samp slns menu item  
      $("#lssampmenu").on("mouseenter", function() { 

//    hide/show sub menus     
        $("#lssampsubmenu").show();     
        $("#dmssubmenu").hide(); 
        $("#lsTMFsubmenu").hide(); 
        $("#drssubmenu").hide(); 

//    set background(white), text(orange) and cursor(pointer) of this item        
        $(this).css('background', '#ffffff') 
        $(this).css('color', '#DF7401'); 
        $(this).css('cursor', 'pointer'); 

//    set background/text of other menu items back to normal 
        $("#lsTMFmenu").css('background', '#0A0A2A'); 
        $("#lsTMFmenu").css('color', '#ffffff'); 
        $("#dmsmenu").css('background', '#0A0A2A'); 
        $("#dmsmenu").css('color', '#ffffff'); 
        $("#drsmenu").css('background', '#0A0A2A'); 
        $("#drsmenu").css('color', '#ffffff'); 

      }); 

//   about DRS menu item  
      $("#drsmenu").on("mouseenter", function() { 

//    hide/show sub menus     
        $("#drssubmenu").show();     
        $("#dmssubmenu").hide(); 
        $("#lsTMFsubmenu").hide(); 
        $("#lssampsubmenu").hide(); 

//    set background(white), text(orange) and cursor(pointer) of this item        
        $(this).css('background', '#ffffff') 
        $(this).css('color', '#DF7401'); 
        $(this).css('cursor', 'pointer'); 

//    set background/text of other menu items back to normal 
        $("#lsTMFmenu").css('background', '#0A0A2A'); 
        $("#lsTMFmenu").css('color', '#ffffff'); 
        $("#dmsmenu").css('background', '#0A0A2A'); 
        $("#dmsmenu").css('color', '#ffffff'); 
        $("#lssampmenu").css('background', '#0A0A2A'); 
        $("#lssampmenu").css('color', '#ffffff'); 

      }); 


     }); 
    </script> 

CSS :

#wrapper { 
    width: 1360px; 
    margin: 0 auto; 
     background-color:#0B0B3B; 
} 

#dmsmenu, #lsTMFmenu, #menuspacer, #lssampmenu, #drsmenu { 

    float: left; 
    min-height: 20px; 
    color:White; 
    border-spacing:2px; 

} 
#dmsmenu { 
    width: 230px; 
    text-align:center; 
    font-weight:bold; 

} 

#lssampmenu { 
    width: 230px; 
    text-align:center; 
    font-weight:bold; 

} 

#drsmenu { 
    width: 130px; 
    text-align:center; 
    font-weight:bold; 

} 
#menuspacer { 
    width: 50px; 

} 

#lsTMFmenu { 
    width: 220px; 
    text-align:center; 
    font-weight:bold; 

} 

.topgradientblueline 
{ 
    background-color: #0A0A2A; 
    width:1100px; 
    height:20px;   
} 
+0

사용 $ (문서) CSTE 연구진에게 ("mouseenter", "# lsTMFmenu"함수() { –

+0

을 어떤 노력, 이런 종류의 질문을 표시 해피 한 달에 백번을 부탁합니다 ... –

+0

$ (문서) .ready를 .on으로 변경했으며 Anoop의 매력처럼 작동했습니다. 빠른 응답 주셔서 감사합니다. – Phil

답변

0

는 대신에, 당신은 document 요소 위로 .on()를 호출 할 필요가 위임 된 이벤트를 처리하려면 문서에서 동적으로 나타날 수있는 대상 선택기에 추가합니다.

그래서 당신은 각각의 선택 "#lsTMFmenu"으로 document 요소에 추가됩니다 어떤 것을 말하는이

$("#lsTMFmenu").on("mouseenter", function() {

$(document).on("mouseenter","#lsTMFmenu", function() {

이 방법을 변경 mouseenter 이벤트 콜백을 연결합니다.

페이지에서 다른 인스턴스의 경우에도이 값을 변경해야합니다.

REF : http://api.jquery.com/on/

코딩 :

관련 문제