event.bubbles
event.cancelable
event.cancelBubble
event.currentTarget
eventPhase(只讀) 返回事件傳播的當前階段。它的值是下面的三個常量之一,它們分別表示捕獲階段、正常事件派發和起泡階段。
html
常量 | 值 | 描述 |
---|---|---|
Event.NONE | 0 | 這個時間,沒有事件正在被處理 |
Event.CAPTURING_PHASE | 1 | 事件正在被目標元素的祖先對象處理. 這個處理過程從window開始,而後Document,而後是HTMLHtmlElement, 一直這樣,直到目標元素的父元素。 經過EventTarget.addEventListener() 註冊爲捕獲模式的Event listeners被調用。 |
Event.AT_TARGET | 2 | 事件對象已經抵達the event's target. 爲這個階段註冊的事件監聽被調用。 若是 Event.bubbles 的值爲false, 對事件對象的處理在這個階段後就會結束. |
Event.BUBBLING_PHASE | 3 | 事件對象逆向向上傳播回目標元素的祖先元素, 從父親元素開始,而且最終到達包含元素window . 這就是冒泡,而且只有 Event.bubbles值爲true的時候纔會發生。 爲這個階段註冊的Event listeners在這個過程當中被觸發. |
event.target
指示發生事件的日期和時間(從 epoch 開始的毫秒數)。epoch 是一個事件參考點。在這裏,它是客戶機啓動的時間。並不是全部系統都提供該信息,所以,timeStamp 屬性並不是對全部系統/事件都是可用的。
語法:瀏覽器
event.timeStamp
type (只讀) 返回當前 Event 對象表示的事件的名稱。即當前 Event 對象表示的事件的名稱。它與註冊的事件句柄同名,或者是事件句柄屬性刪除前綴 "on" 好比 "submit"、"load" 或 "click"。函數
語法:event.type
標準的event方法spa
參數 | 描述 |
---|---|
eventType | 字符串值。事件的類型。 |
canBubble | 事件是否起泡。 |
cancelable | 是否能夠用 preventDefault() 方法取消事件。 |
event.initEvent(eventType,canBubble,cancelable
// 建立事件. var event = document.createEvent('Event'); // 初始化一個點擊事件,能夠冒泡,沒法被取消 event.initEvent('click', true, false); // 設置事件監聽. elem.addEventListener('click', function (e) { // e.target 就是監聽事件目標元素 }, false); // 觸發事件監聽 elem.dispatchEvent(event);
event.preventDefault()
stopPropagation() 阻止捕獲和冒泡階段中當前事件的進一步傳播。終止事件在傳播過程的捕獲、目標處理或起泡階段進一步傳播。調用該方法後,該節點上處理該事件的處理程序將被調用,事件再也不被分派到其餘節點。
語法:code
event.stopPropagation()
<!DOCTYPE html> <html> <head> <style> p { height: 30px; width: 150px; background-color: #ccf; } div {height: 30px; width: 150px; background-color: #cfc; } </style> </head> <body> <div> <p>paragraph</p> </div> <script> document.querySelector("p").addEventListener("click", function(event) { alert("我是p元素上被綁定的第一個監聽函數"); }, false); document.querySelector("p").addEventListener("click", function(event) { alert("我是p元素上被綁定的第二個監聽函數"); event.stopImmediatePropagation(); //執行stopImmediatePropagation方法,阻止click事件冒泡,而且阻止p元素上綁定的其餘click事件的事件監聽函數的執行. }, false); document.querySelector("p").addEventListener("click", function(event) { alert("我是p元素上被綁定的第三個監聽函數"); //該監聽函數排在上個函數後面,該函數不會被執行. }, false); document.querySelector("div").addEventListener("click", function(event) { alert("我是div元素,我是p元素的上層元素"); //p元素的click事件沒有向上冒泡,該函數不會被執行. }, false); </script> </body> </html>