為同一元素物件分別用三種繫結事件方式繫結同一種事件

2022-03-12 20:17:24 字數 1293 閱讀 7061

小菜鳥今天無意之間發現了這個問題,由於我之前用dom0級方式給li元素繫結了onclik事件,然後今天在做乙個小test的時候用元素特性再次給這個li元素繫結了onclik事件,然後意外的發現這個事件沒有觸發,又把這個事件換到其他元素上,alert成功。所以就想起了js中的三種繫結事件的方式,如果分別給同乙個元素繫結同一種事件,那麼這三種繫結事件方式的執行順序是什麼。然後小菜鳥就做了乙個demo來測試一下。**如下

doctype html

>

<

html

>

<

head

>

<

title

>

title

>

head

>

<

body

>

<

div

id='test'

style

="width: 100px; height: 100px; background-color: red;"

onclick

="testfun()"

>

div>

<

script

>

addeventlistener(

'click

',testfun1,

false

);

function

testfun1()

varobj

=document.getelementbyid(

'test');

obj.onclick

=function

()

function

testfun()

script

>

body

>

html

>

之後alert結果順序為:dom0 dom2

如果注釋掉這段**

var

obj=

document.getelementbyid(

'test');

obj.onclick

=function

()alert結果順序為:html dom2

之後就請教了別人,原來這是由於html是順序執行的,解析到哪兒就執行到哪兒,整個dom都完成之後,dom0級事件處理程式就覆蓋掉了html事件處理程式。

好了,更具體的原理是怎樣的我就沒有花時間去找答案了。如果有大神知道是怎麼回事請多多指點指點。

集合 判斷是否為同一元素 總結

集合判斷是否是同一元素的策略總結 總結 普通list集合 對於arraylist集合,判斷是否是同一物件,僅僅通過呼叫物件的 equals 方法 arraylistal new arraylist al.add new person lisi 20 al.add new person bqt 21 ...

同一元素內的元素再進行分行

迷茫了好幾天,一直在改進,一開始用盒子模型,但存在手機瀏覽器和螢幕的相容問題,放棄了,之後又用傳統的方法設定寬和高 前提父級設定height 100 或固定的值 內建的兩個元素,按不同比例平分父級的height 效果如下 實現 漂流的豬 10 22 name name pic span img ti...

唯一元素List UniqueList

using system using system.collections.generic using system.linq using system.text using system.reflection.emit using nunit.framework namespace sastest...