国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript之IE的fireEvent方法詳細解析

2019-11-20 21:39:00
字體:
來源:轉載
供稿:網友

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

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

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

<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>

這段代碼中我們沒有個id1的li添加onclick事件,點擊button,會報錯,提示“對象不支持此屬性或方法”。由此可見,DOM.onclick()需要添加onclick事件之后才能使用。

假如我們把以上的代碼修改為:

<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()觸發事件是否相同。看下面的代碼:

<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>

點擊button后,觸發ul的onclick事件,說明fireEvent會引起冒泡,而且沒有發生像onclick()提示“對象不支持此屬性或方法”,說明即使不添加id1的onclick事件也可以冒泡。
由此可以看出,IE中的fireEvent方法類似模擬用戶的鼠標點擊行為,而不是單純的onclick。

總結fireEvent和onclick區別
通過上面的例子可以看出,DOM的fireEvent和onclick(這只是個代表)有以下區別:

onclick需要DOM真正添加了onclick事件,否則會報“對象不支持此屬性或方法”錯誤
onclick不會引起IE的冒泡過程,而fireEvent會引起冒泡,fireEvent更貼近用戶真實的行為觸發
由第二條得出,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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 布拖县| 依安县| 长阳| 龙海市| 新昌县| 阿克| 梁河县| 郧西县| 江城| 丰原市| 长宁县| 鹿泉市| 宝山区| 新建县| 保德县| 瑞丽市| 革吉县| 南雄市| 巴彦淖尔市| 东乡族自治县| 固阳县| 融水| 桂平市| 二手房| 鸡西市| 山东省| 黄龙县| 页游| 体育| 阳城县| 饶河县| 广饶县| 汤阴县| 资源县| 洛阳市| 集贤县| 凤台县| 古蔺县| 平和县| 临洮县| 澳门|