2014-01-17 61 views
1

當我取回HTML與$獲得(),HTML中包含像輸入,文本區域,等我想改變,粘貼和按鍵事件附加到這些表單字段控制但這些事件沒有被解僱。 jQuery文檔指出,在使用$ .get()檢索html之前,這些控件中至少有一個需要存在於html中。或者,您可以使用不需要預先提供任何控件的文檔元素,但這會產生主要的性能問題,所以我會在調用ajax之前在頁面上放置一個隱藏控件。這裏是我的html:jQuery的「上」不觸發對Ajax加載內容

<div id="divAdminContent"> 
    <form id="frmAdmin"> 
    <input type="text" style="display:none" /> 
    </form> 
</div> 

,這裏是我如何附上「關於」:

$("#frmAdmin :input").on("change paste keypress", function (e) 
{ 
    // Do something... 
}); 

回答

5

您使用on()你的事件綁定代碼執行你正在試圖綁定事件的元素時需要event delegation不存在。

$("#frmAdmin").on("change paste keypress", ":input", function (e) 
{ 
    // Do something... 
}); 

委派事件

委託事件有優勢,他們可以處理來自被添加到該文件在稍後的時間 後代元素的事件。通過 採摘這是保證出席 委派的事件處理程序連接時的元素,你可以使用委派事件 避免需要經常重視和移除事件處理程序,jQuery doc

+0

其實我讀到代表團,但顯然不明白如何使用第二選擇器。謝謝。它現在有效。 – AndroidDev

+0

不客氣。 – Adil

+0

這也是有趣的是,相反的是jQuery的文檔狀態,你是不是需要有一個存在於HTML控件調用$。獲得()之前。我刪除了元素,它沒有它的工作。 – AndroidDev