2010-05-30 3 views
0

인사말, 질문은 ASP.NET MVC와 관련이 있습니다.일부 div는 동적으로 AJAX (일부보기는 동적으로 렌더링)를 사용하여 만듭니다. 이러한 뷰에는 JS 코드가 있습니다. 사용자가 링크를 클릭하면 Google지도로 대화 상자를 열고 싶습니다. 그러나 이러한 뷰는 동적으로 렌더링되기 때문에 js 코드가 삽입되지 않기 때문에 작동하지 않습니다 (페이지 소스에서 볼 수있는 것). 이 문제를 어떻게 해결할 수 있습니까?Ajax 동적으로 생성 + 자바 스크립트

답변

0

몇 가지 아이디어 : 가능하면

  1. 동적 뷰를로드 페이지에서, live를 사용하여 처리기를 추가합니다. 로드 된 모든 div에 대해 공통 핸들러가있는 경우 이것을 사용하십시오.

    $ ('a.map-link') 라이브 ('클릭', 기능() { ... 대화 상자에서 클릭 된 링크 열기 });

  2. 는 AJAX 성공 콜백 핸들러를 추가합니다. 핸들러가로드 된 div를 기반으로 예측 가능하게 다를 경우이 옵션을 사용하십시오.

    $ 아약스 ({ ... 성공 : 기능 (데이터) { $ (data.html) .appendTo (...) .find ('A') .click (함수() }})) {... 는 핸들러 에서 데이터의 다른 부분을 사용할};

  3. 는 AJAX로드 코드에서 자바 스크립트를 포함하지만, 몸이 아닌 머리 요소입니다. 코드가로드 된 HTML에만 해당되며 모든 뷰에 대해 쉽게 추상화 될 수없는 경우이 옵션을 사용하십시오.

보기

<body> 
    <div>specific stuff for this view</div> 
    <script type="text/javascript"> 
     ... this code **will** be executed when loaded ... 
    </script> 
</body> 

페이지로드 뷰

$.ajax({ 
    .... 
    success: function(html) { 
     $(html).appendTo(...); 
    } 
}); 
관련 문제