2014-10-22 1 views
0

AJAX가 data-role 요소를 포함하는 HTML로 생성 된 div 일정을 채운 후에 jQuery Mobile 기능을 적용 할 수 없습니다. 본문 태그에 스크립트를 넣는 것을 포함하여 순서를 바꾸어 보았습니다. 아무 소용이 없습니다. 내 AJAX를 실행 한 후에 jQuery를 강제 실행하는 방법이 있습니까? JQuery가 기능을 적용하기 전에 AJAX 생성 HTML로 페이지를 채우는 방법

agenda.js:

미리
function loadSchedule(){ 
    text = "...LOTS OF AJAX HTML GENERATION..."; 
    document.getElementById("schedule").innerHTML = text; 
} 

사과 내가 JS와 총 멍청한 놈이야로

<html> <head> <script src="../javascript/agenda.js"></script> <script> loadSchedule(); </script> <script src="../javascript/jquery-1.11.1.min.js"></script> <script src="../javascript/jquery.mobile-1.4.4.min.js"></script> </head> <body> <div id="schedule"></div> </body> </html> 

schedule.html:

.

+0

당신은 그것을 통해 할 수 있습니다 : http://requirejs.org/ – Hackerman

+0

jQuery의 ajax 함수는 당신이 찾고있는 것을 할 것이라고 믿는'async : false' 옵션을 가지고 있습니다 만, 그것은 아마 형편없는 것입니다 사용자 경험은 화면을 잠그고 아마도 페이지를로드하는 데 더 오래 걸릴 것이기 때문입니다. –

+0

왜 loadSchedule() 후에 jquery를로드해야합니까? jquery에서 ** $. ajax **를 사용하면 기본 자바 스크립트에서 수행중인 작업을 수행 할 수 있습니다. – carlosherrera

답변

0

정확하게 질문을 이해할 수 없지만 동적 내용에 JQuery 이벤트를 적용하는 데 문제가있는 것 같습니다. JQuery는 .on 함수를 통해 동적 콘텐트를 처리한다. 기본적으로 역순으로 바인딩을 선택자와 일치하는 새로 생성 된 모든 DOM 요소에 적용한다.

JQuery와 문서는 링크 : http://api.jquery.com/on/

사용 예 :

$(document).ready(function() { 
    $("body").on('click', '#my_new_div', function() { 
     // this event is fired when clicking on div#my_new_div even if it is dynamically created 
    }); 
}); 

희망이 도움이!

관련 문제