2010-11-23 3 views
0

메뉴를 만들기 위해 한 페이지의 섹션에서 다른 페이지로 데이터를 가져옵니다. 숨겨진 요소 나 변수로 데이터를 가져와야합니다. 지금은 중복 메뉴로 끝납니다. 내 다이내믹 플라이 아웃과 정적 인 <ul><li> 님. 이 메뉴는 메뉴로 구성됩니다. 이 속해 어디에 내 메뉴는 더 이상 배치하기 것을 제외하고 작동JQuery 변수 또는 숨겨진 요소로 .load()

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('div.ms-quickLaunch').replaceWith('<div id="hierarchy" style="border:solid 1px white; width:0px; visibility:hidden"></div>'); 
    }); 

$(function(){ 
      $('#hierarchy').load('http://wwcshare/icenter/Pages/wwcMenuContent.aspx #menuContent', 
       function(){ 
        $(this).menu({ 
         autoShow: true, 
         content: $(this).html(), 
         backLink: false, 
         crumbDefaultText: ' ' 
        }); 
       });   
      }); 
</script> 

: 여기

는 내가 지금까지 가지고있는 것입니다. 대신 페이지 상단에있는 #hierarchy div쪽에 있습니다.

$(function(){  
      $.get('http://wwcshare/icenter/Pages/wwcMenuContent.aspx', function(data){ // grab content from another page 
       contentIwant = data.find("#menuContent"); 
       $('#hierarchy').menu({ 
        autoShow: true, 
        content: contentIwant, 
        backLink: false, 
        crumbDefaultText: ' ' 
       }); 
      }); 
     }); 

답변

5

달러 (A $)의 갔지() 더 나은 달러 (A $)의 .load()보다 더 당신의 목적에 맞게 것이다 $ 갔지()는 페이지

에로드하기 전에 데이터를 처리 할 수 ​​있습니다를 사용하여

+0

'$ .get()'이 사이트의 특정 부분을 가져올 수 없다는 점을 제외하고는 정확합니까? –

+0

은 자동으로 실행되지 않지만 작은 장애물입니다. 'data.find ("# element")' – generalhenry

+0

그들은 모두 $ .ajax에 대한 지름길입니다. $ .load는 imho를 원한다면 한 걸음 더 나아가고, 한 걸음 멈추고 수동으로 마지막 단계로 나아가는 것이 좋습니다. 수동으로 단계를 실행 취소하는 것이 더 어렵습니다. – generalhenry

3

당신이에로드 된 요소가 숨겨져 있는지 여부는 중요하지 않습니다


여기에 대한 대답의 중 하나를 기반으로 내 대체 시도이다. 그것은 DOM에 존재한다면 당신은 그것에로드 할 수 있습니다.

요소가 먼저 CSS를 통해 숨겨져 있는지 확인 하나 : 당신이 그것으로 컨텐츠를로드 할 때

#element{display:none;} 

또는

가 jQuery로 요소를 숨기기

$('#holder').hide().load('mypage.php'); 

희망이 도움이 너!

W.