我有這樣的代碼如何更換jQuery的生活與功能
$(".myclass").on("click", function(e){
alert('Hello');
});
現在它不工作dynamicaly添加的元素
我怎麼可以用這樣的直播功能
我有這樣的代碼如何更換jQuery的生活與功能
$(".myclass").on("click", function(e){
alert('Hello');
});
現在它不工作dynamicaly添加的元素
我怎麼可以用這樣的直播功能
要使用它,就像生活,你必須使用"delegation",這意味着你附加的處理程序是從開始存在,如父元素:
$(document).on('click', '.myclass', function(e){
alert('Hello');
});
說明它是什麼在docs說:
事件處理程序僅綁定到當前選定的元素;在代碼調用.on()時,頁面上必須存在 。 要確保元素存在並且可以選擇,請在頁面上的HTML標記中的 HTML標記中對元素執行文檔就緒處理程序內的事件 綁定。如果新頁面被注入頁面, 選擇元素並附加事件處理程序,當新的HTML被放置到頁面中時,頁面中的內容爲 。或者,使用委託事件來附加處理程序事件 ,如下所述。
此外,如果你擔心性能問題,嘗試將處理程序爲「低」成爲可能:
附加附近的文檔 樹可降解的頂部變成了委託的事件處理程序性能。每次事件發生時,jQuery必須 將該類型的所有附加事件的所有選擇器與從事件目標到 文檔頂部的路徑中的每個 元素進行比較。爲獲得最佳性能,請將文檔 位置的委派事件附加到儘可能靠近目標元素的位置。避免過度使用 文檔或document.body來處理大型 文檔上的委派事件。
您需要包括jQuery version 1.7
及以上在您的代碼中。
因爲您正在動態添加您需要委派事件的元素。
$("body").on("click",'.myclass', function(e){
alert('Hello');
});
事件不會附着於其中加入後點擊事件是associated..That您需要將事件添加到它增加了事件的子事件,由於事件冒泡父容器的原因的元素..
我有1.8版本 – user26
附加on
,其存在於在頁面載入DOM的元素,並且委託給.myclass
,例如: -
$('#classContainer').on('click', '.myclass', function(e) {
alert('Hello');
});
感謝哥們,那工作 – user26
請看看:[http:// stackoverflow。COM /一個/ 12690212] [1] [1]:http://stackoverflow.com/a/12690212 –
[jQuery的文檔(http://api.jquery.com/live)可能是一個好地方開始... – nbrooks