2012-10-17 4 views
0

각 페이지의 내용을로드하기위한 포함 div가있는 색인 페이지를 사용하는 사이트를 만들었습니다.AJAX 로딩 된 스크립트에서 jQuery를 초기화하는 올바른 방법은 무엇입니까? Getting : 'Uncaught TypeError : Object # <Object>에는 메서드가 없습니다.'

처음에는 외부 js 파일을 포함하고 각 개별 페이지 내에서 초기화 작업을 수행했지만 페이지가로드 된 시간은 8/10 시간이었습니다. 초기화 된 플러그인에 의존하는 요소는 작동하지 않지만 새로 고침시 사용하게됩니다.

어제 모든 외부 파일과 모든 초기화가 각 개별 페이지가 아닌 인덱스 페이지에서 이루어 지도록 구조를 변경했습니다.

이제 모든 것이 처음 작동하지만 두 번째로 페이지가 아약스를 통해로드되면 플러그인이 초기화되지 않습니다.

다음은 색인 페이지에서 수행하는 방법입니다. (순자산 가치 (NAV)에 변명 인라인 JS -! 내가 아니었다)

// js files included at the top 

<div id="navbar"> 
    <ul class="clearfix"> 
     <li> 
      <a id="myoeHome" onclick="loadContent('/myoe/amb-home.php')" href="javascript:void(0)"> Home </a> 
     </li> 
     <!-- some more li a's in the nav bar --> 
    </ul> 
</div> 

jQuery를

function loadContent(url) { 

    // #content is the containing div where each page is loaded into 
    $("#content").load(url, function() { 

     if (url == '/myoe/amb-home.php') { 

      // initialisations etc. for the particular page 

     } 

    }); 


} 

나는 구조를 개선하기 위해 무엇을 할 수 있는지에 어떤 아이디어? 방금 loadContent 함수 내부에 함수가 있습니다. 각 페이지의 모든 j를 자체 if 블록으로 이동했기 때문입니다.

답변

0

이것은 내 해결책입니다. 희망이 도움이되었습니다.

HTML

<div id="navbar"> 
    <ul class="clearfix"> 
     <li> 
      <a id="myoeHome"> Home </a> 
     </li> 
     <!-- some more li a's in the nav bar --> 
    </ul> 
</div> 

<div id="content"></div> 

JS

$("#myoeHome").live("click",function(){ 

loadContent('/myoe/amb-home.php'); 
});​​​​​​​​​​​​ 


    function loadContent(url) { 

    // #content is the containing div where each page is loaded into 
    $("#content").load(url, function() { 

     if (url == '/myoe/amb-home.php') { 

      // initialisations etc. for the particular page 

     } 

    }); 


} 
​ 

관련 문제