我在動態添加元素到頁面時遇到了必要的實時事件問題。Jquery「live」事件沒有觸發
定期點擊事件正常工作。我想知道爲什麼現場點擊事件失敗。在JSFiddle中設置的演示中有說明。也許有人可以向我解釋爲什麼會發生這種情況。
演示: http://jsfiddle.net/MezfS/2/
感謝您的時間。
我在動態添加元素到頁面時遇到了必要的實時事件問題。Jquery「live」事件沒有觸發
定期點擊事件正常工作。我想知道爲什麼現場點擊事件失敗。在JSFiddle中設置的演示中有說明。也許有人可以向我解釋爲什麼會發生這種情況。
演示: http://jsfiddle.net/MezfS/2/
感謝您的時間。
與委託,並允許click事件泡儘可能的錨固定它:
$('#pui-tabs a').delegate('.tab-close', 'click', function(e) {
tabselector.tabs('remove', tabselector.tabs('option', 'selected'));
});
.live
依靠事件一直冒泡到文件,並且你停止你的處理程序的立即傳播,從而停止它的工作。試試這個:
$('li[id=^="tab"]').delegate(".tab-close", "click", function(e) {
e.stopImmediatePropagation();
tabselector.tabs('remove', tabselector.tabs('option', 'selected'));
});
我已經在我的帖子中的JSFiddle演示中嘗試過你的例子,但它不起作用。問題在於現場活動甚至沒有被解僱。 – HGPB
「活」事件的行爲與普通事件處理程序的行爲不同。綁定實時事件時,會將事件處理程序附加到頁面中最頂層的元素之一(例如body或document)。因爲當你點擊頁面上的任何地方時,你也點擊了正文,事件就會冒泡。例如,您點擊包含在正文中的div中的鏈接,將爲鏈接觸發事件,爲div觸發事件,然後觸發正文。
當事件到達主體時,「活動」事件處理程序會查看它,並且如果點擊來源與您的選擇器相匹配,它將觸發您的功能。
除非鏈接上的處理程序之一或div阻止事件傳播。在這種情況下,事件就會停止,不會冒泡,永遠不會到達「現場」處理程序。
我想,jQuery UI在選項卡上放置一個處理程序,以捕獲點擊,並且該處理程序實際上是停止傳播,使「活」處理程序無用。
爲我工作。 :/ –
Mully你可以發佈什麼適合你。更新上面的演示併發布你的鏈接 - 謝謝。 – HGPB