IE的fireEvent方法概述及應用

IE中提供了一個fireEvent方法大概就是觸發某個事件發生的意思,覺得是和onclick()同樣,看來是我自已爲是了,有時間還要多看看javascript的細節啊,廣大網友也是啊javascript

在IE中提供了一個fireEvent方法,顧名思義就是觸發某個事件發生的意思。剛開始我覺得是會跟平時使用onclick()同樣,沒想到最近在寫javascript入門ppt的時候發現了,原來本身太自覺得是了!看來還有不少javascript的細節沒有掌握好啊!

如今根據本身的總結詳細的記錄下fireEvent方法的使用。fireEvent是IE提供的一種方法,msdn文檔地址:http://msdn.microsoft.com/en-us/library/ms536423(v=vs.85).aspx 

onclick() 
咱們先看第一段實例代碼: 
java

複製代碼代碼以下:測試


<ul onclick='alert(event.srcElement.innerHTML);'> 
<li id='id1'>i am one;</li> 
<li id='id2'>i am two;</li> 
<li id='id3'>i am three;</li> 
</ul> 
<button onclick='document.getElementById("id1").onclick();'>click me!</button> 
spa


這段代碼中咱們沒有個id1的li添加onclick事件,點擊button,會報錯,提示「對象不支持此屬性或方法」。因而可知,DOM.onclick()須要添加onclick事件以後才能使用。 

假如咱們把以上的代碼修改成: 
對象

複製代碼代碼以下:three


<ul onclick='alert(event.srcElement.innerHTML);'> 
<li id='id1' onclick='alert(1);'>i am one;</li> 
<li id='id2'>i am two;</li> 
<li id='id3'>i am three;</li> 
</ul> 
<button onclick='document.getElementById("id1").onclick();'>click me!</button> 
事件


此時,點擊button會觸發onclick事件,可是ul的onclick沒有觸發,這就代表了DOM.onclick()不存在冒泡。 
fireEvent() 
咱們來看看fireEvent跟onclick()觸發事件是否相同。看下面的代碼: 
ip

複製代碼代碼以下:文檔


<ul onclick='alert(event.srcElement.innerHTML);'> 
<li id='id1'>i am one;</li> 
<li id='id2'>i am two;</li> 
<li id='id3'>i am three;</li> 
</ul> 
<button onclick='document.getElementById("id1").fireEvent("onclick")'>fireEvent !</button> 
get


點擊button後,觸發ul的onclick事件,說明fireEvent會引發冒泡,並且沒有發生像onclick()提示「對象不支持此屬性或方法」,說明即便不添加id1的onclick事件也能夠冒泡。 
由此能夠看出,IE中的fireEvent方法相似模擬用戶的鼠標點擊行爲,而不是單純的onclick。

總結fireEvent和onclick區別 
經過上面的例子能夠看出,DOM的fireEvent和onclick(這只是個表明)有如下區別: 
1.onclick須要DOM真正添加了onclick事件,不然會報「對象不支持此屬性或方法」錯誤 
2.onclick不會引發IE的冒泡過程,而fireEvent會引發冒泡,fireEvent更貼近用戶真實的行爲觸發 
3.由第二條得出,fireEvent在即便DOM沒有click事件也能夠fireEvent,而不會報錯(更貼近用戶真實行爲) 
最後能夠拿下面的代碼測試: 

複製代碼代碼以下:

<ul onclick='alert(event.srcElement.innerHTML);'> <li id='id1' onclick='alert(1);'>i am one;</li> <li id='id2'>i am two;</li> <li id='id3'>i am three;</li> </ul> <button onclick='document.getElementById("id1").onclick();'>click me!</button> <button onclick='document.getElementById("id1").fireEvent("onclick")'>fireEvent !</button> 

相關文章
相關標籤/搜索