2010-05-30 122 views
0

問候, 這個問題涉及到ASP.NET MVC 我使用AJAX動態創建一些div(一些視圖動態呈現)。在這些視圖裏面有一些JS代碼。當用戶點擊鏈接時,我想用谷歌地圖打開對話框。但是,因爲這些視圖是動態呈現的,所以它不起作用,因爲js代碼沒有被注入(可以在頁面源中看到)。我該如何解決這個問題?Ajax動態創建div + javascript

回答

0

幾個想法:

  1. 使用live添加您的處理程序,如果可能的話,它可以動態加載的意見在頁面上。如果你對所有加載的div有共同的處理程序,請使用它。 ('a.map-link')。live('click',function(){ ...打開對話框中的點擊鏈接 });

  2. 在AJAX成功回調中添加處理程序。如果處理程序根據加載的div預測不同,則使用此方法。

    $阿賈克斯({ ... 成功:功能(數據){$ (data.html).appendTo(...) .find( 'A')。點擊 (函數() { ...使用處理器 }}; } })中的一些其他部分數據;

  3. 將JavaScript包含在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(...); 
    } 
});