2009-08-05 64 views
1

我有一個HTML文檔,用jQuery代碼變化不會觸發事件在AJAX加載的形式

$(function(){ 
[...] 
    $("#newNotice").click(function(){ 
     $("#properties").load("testDiagramm.html #NoticeForm"); 
     return false; 
     }); 
    function showFormValues(){ 
     var s = $("form").serialize(); 
     [... Do things ...] 
    } 
    $("input, textarea").change(showFormValues); 
    }); 

起初存在HTML文檔中沒有的形式。但我加載不同的表單到文檔中。其中一個請求你可以在這裏看到

$("#properties").load("testDiagramm.html #NoticeForm"); 

問題是。即代碼行

$("input, textarea").change(showFormValues); 

只有在表單被加載時纔會觸發。如果我想要執行showFormValues()函數時,我必須做什麼,當我在公式中更改某些內容時,我稍後加載該內容?

非常感謝您的回答。

拉拉

回答

3

你的窗體失去它通過AJAX重裝後,那麼事件處理程序之前綁定到獲得注入的頁面都將丟失的元素的結合到DOM。

我通常會建議使用事件代表團live,但它不支持改變事件,所以一個安全的賭注是使用一個回調作爲第二個參數到$ .load功能重新綁定:

$(function(){ 
[...] 
    $("#newNotice").click(function(){ 
     $("#properties").load("testDiagramm.html #NoticeForm", function() { 
      $("input, textarea").change(showFormValues); 
     }); 
     return false; 
     }); 
    function showFormValues(){ 
     var s = $("form").serialize(); 
     [... Do things ...] 
    } 
    $("input, textarea").change(showFormValues); 
    });