操作發生時會觸發相應的事件,建立乙個事件物件,該物件包含了各種事件屬性,然後事件以如下順序進行處理:
1. 捕獲階段:事件先傳送到window,然後是document,接著是每乙個目標元素的父元素,直到該目標元素。
2. 定位階段:事件傳送到目標元素。
3. 冒泡階段:事件傳送回每乙個目標元素的父元素,直到window元素。
在xul和html中,事件機制是一致的。
新增事件的兩種方式:
1. 寫在元素的屬性中,如:οnclick=「...」。這種方式只能處理冒泡階段的事件。
2. 使用addeventlistener:這種方式可以處理各個階段的事件。
阻止事件傳遞:
event.stoppropagation();可以用來阻止事件傳遞,由於事件捕獲在冒泡之前,所以如果在事件捕獲階段使用了,那麼就無法在冒泡階段監聽到事件了。
阻止預設事件:
如果沒有其他的事件監聽,那麼在捕獲和冒泡完成後會觸發預設的事件處理,event.preventdefault()可以用來阻止預設事件。
需要注意的是阻止預設事件並不會阻止冒泡,同樣,阻止冒泡也不會阻止預設事件。
阻止事件傳遞和阻止預設事件處理後,無法再解除阻止!
Javascript常見知識點
jquery d ocum ent rea dy 與win dow.onlo ad的區 別1.執行 時間wi ndow onl oad必 須等到頁 麵內包括 的所 有元素加 載完畢後 才能執行 document ready 是dom結構繪製完畢後就執行,不必等到載入完畢。2.編寫個數不同 windo...
javascript知識點彙總
function vartest console.log x 2 function lettest console.log x 1 var arr1 new array a b c 這是乙個預定義的陣列,在建立時初始化 var arr2 a b c 同樣是在建立時初始化,但是這種建立更為簡潔直觀 v...
JavaScript知識點之 delete操作符
delete操作符來刪除乙個隱式宣告的全域性變數,也就是沒有使用var定義的全域性變數.如果delete操作符刪除成功,則被delete的屬性已從所屬的物件上徹底消失,隨後,該物件的原型上可能存在的乙個同名屬性會被繼承.一些物件的屬性不能被delete.ecma 262 規範中把這些屬性標記為 do...