我想在同一頁上使用不同形式的事件委託。但是,我在嘗試提交表單時遇到了一個有趣的問題。Javascript:瞭解事件委託處理
我試着在一個表單上(點擊提交按鈕)「點擊」,並且完全知道事件委託在本表中固有地設置了「點擊」。
但是,問題來自事實上'click'事件實際上是在整個頁面上設置的,而不僅僅是表單或按鈕元素。所以無論我點擊哪個頁面,該表單的'click'事件都會被觸發。所有瀏覽器都會發生這種情況。
「更改」事件也發生了同樣的情況。當我在表單上設置「更改」事件時,會觸發表單的子字段以及特定表單節點外的其他字段。
所以雖然我知道之前已經有questions詢問過事件委託,但他們並沒有真正回答這個問題。這是否是一個問題?也許這是事件代表團打算如何工作?但如果是這樣,那麼對於整個文檔觸發的事件是不是浪費內存?解決辦法是什麼?
此外,是否有一個跨瀏覽器的方式來停止傳播純JavaScript?我發現最好的是在Quirksmode.org:
function doSomething(e)
{
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
}
我知道我可以按照類型過濾的事件觸發時,但是是唯一一個可以做什麼?請幫我理解這一點!
編輯:
的具體問題是,是否委託的事件處理在其特定領域的事件會/也可以觸發對文檔的其餘部分的活動形式?如果是這樣,如何處理? 如果這不是事件授權的預期行爲,那麼可能是什麼原因導致它?
TL;博士。你應該更精確和簡潔 - 你的問題是什麼? – Reinmar
剛剛添加了一個特定的問題。 :) – user
嗯...現在我不明白你的問題,但也許別人做:) – Reinmar