1. 程式人生 > 實用技巧 >JS中dom0級事件和dom2級事件的區別介紹

JS中dom0級事件和dom2級事件的區別介紹

dom0級事件

1 2 3 4 5 6 7 8 9 10 <a href="#" id="hash" onclick="fn();fn();"> <button type="button">返回上面進行開通</button> </a> var btn=$('#hash').get(); btn.onclick=function(){ alert(''); }; btn.onclick=function(){ alert(''); };

像上面把onclick寫在標籤內,都是dom0級事件,fn和fn1依次執行; 第二種獲取元素,繫結onclick事件也是dom0級,第二個會覆蓋第一個onclick,也會覆蓋行內的onclick,只會彈出222。

dom2級事件

1 2 3 4 5 6 7 8 9 10 11 12 $('#hash').click(function(){ alert('jq的dom2級點選第一次') }); $('#hash').click(function(){ alert('jq的dom2級點選第二次') }); btn.addEventListener('click',function(){ alert('原生dom2級第一次click') },false); btn.addEventListener('click',function(){ alert('原生dom2級第二次click') },
false)

以上的繫結都屬於dom2級事件繫結,前面兩種都是jq的繫結方式,後面都是原生js的繫結方式,不會覆蓋,會依次執行jq的繫結方法和原生的繫結方法,這就是於dom0級的去別處;

dom0和dom2共存

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <a href="#" id="hash" onclick="fn();fn1();"> <button type="button">返回上面進行開通</button> </a> <script type=
"text/javascript"> function fn(){ alert('ade'); } function fn1(){ alert('ade111'); } var btn=$('#hash').get(0); btn.onclick=function(){ alert('111'); }; $('#hash').click(function(){ alert('jq的dom2級點選第一次') }); btn.addEventListener('click',function(){ alert('原生dom2級第一次click') },false); </script>

上面的例子有一個兩個dom0級和兩個dom3級繫結事件,js裡面寫的dom0級會覆蓋行內的fn和fn1方法,但是js裡面的dom0可以喝dom2共存,結果是彈出111 jq的dom2級點選第一次 原生dom2級第一次click;

以上內容是JS中dom0級事件和dom2級事件的區別介紹