前幾天有小伙伴問過我一個問題,為什么有DOM 0級事件以及DOM2級事件,但是卻沒有DOM1級事件呢?那我們今天就來說一說DOM的級別問題。
同時推薦伙伴們可以看看尚學堂有關JavaScript BOM的文章:《細說javascript BOM》
一.DOM0級事件
0級DOM分為兩種
- 行內事件:在標簽中寫事件
- 元素.on事件名=函數
1.行內 <input type="button" id="btn" value="按鈕" onclick="alert('上海尚學堂,你值得擁有!')"> |
2.元素.on事件名=函數 document.getElementById("btn").onclick = function () { alert('上海尚學堂,你值得擁有!'); } |
二.DOM1級問題
為什么沒有1級DOM?
DOM級別1於1998年10月1日成為W3C推薦標准。1級DOM標准中並沒有定義事件相關的內容,所以沒有所謂的1級DOM事件模型。在2級DOM中除了定義了一些DOM相關的操作之外還定義了一個事件模型 ,這個標准下的事件模型就是我們所說的2級DOM事件模型
三.DOM2級事件
只有一個:監聽方法,有兩個方法用來添加和移除事件處理程序:addEventListener()和removeEventListener()。
它們都有三個參數:第一個參數是事件名(如click);
第二個參數是事件處理程序函數;
第三個參數如果是true則表示在捕獲階段調用,為false表示在冒泡階段調用。
- addEventListener():可以為元素添加多個事件處理程序,觸發時會按照添加順序依次調用。
- removeEventListener():不能移除匿名添加的函數。
document.getElementById("btn").addEventListener("click", function(){alert('上海尚學堂,你值得擁有!')}, false); |
對事件的不同級別的具體區別,還是需要大家了解清楚的,那么下次我們再來聊一聊事件的不同執行階段問題.