js 冒泡事件與事件監(jiān)聽(tīng)使用分析
更新時(shí)間:2009年09月21日 19:50:32 作者:
js 冒泡事件與事件監(jiān)聽(tīng) 代碼分析
冒泡事件
js中“冒泡事件(bubble)”并不是能實(shí)際使用的花哨技巧,它是一種對(duì)js事件執(zhí)行順序的機(jī)制,“冒泡算法”在編程里是一個(gè)經(jīng)典問(wèn)題,冒泡算法里面的“冒泡”應(yīng)該說(shuō)是交換更加準(zhǔn)確;js里面的“冒泡事件”才是真正意義上的“冒泡”,它從DOM最低層逐層遍歷樹(shù),然后附加相應(yīng)事件。以下面代碼為例:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
查看運(yùn)行效果
事件監(jiān)聽(tīng)
事件監(jiān)聽(tīng)準(zhǔn)確一點(diǎn)講可以說(shuō)是js引擎對(duì)用戶鼠標(biāo)、鍵盤、窗口事件等動(dòng)作的監(jiān)視進(jìn)行的操作,也就是針對(duì)用戶相應(yīng)的操作進(jìn)行附加事件,常用的類似 btnAdd.onclick="alert('51obj.cn')"就是一種簡(jiǎn)單的附加事件,只不過(guò)這種方法不支持附加多個(gè)事件以及刪除事件。以下代 碼將實(shí)現(xiàn)附加事件后刪除事件(IE下):
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
查看運(yùn)行結(jié)果
IE不能稱為標(biāo)準(zhǔn)的DOM瀏覽器,即使是最新的IE8,相對(duì)于標(biāo)準(zhǔn)DOM如Firefox、Opera等,它是個(gè)“異類”;在Firefox中才真正有稱為事件監(jiān)聽(tīng)的函數(shù)addEventListener,如下例
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
查看運(yùn)行效果
從上面兩個(gè)例子看出attachEvent在Firefox中并不支持,IE也不支持addEventListener.因此需要使用兼容性的方法。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
js中“冒泡事件(bubble)”并不是能實(shí)際使用的花哨技巧,它是一種對(duì)js事件執(zhí)行順序的機(jī)制,“冒泡算法”在編程里是一個(gè)經(jīng)典問(wèn)題,冒泡算法里面的“冒泡”應(yīng)該說(shuō)是交換更加準(zhǔn)確;js里面的“冒泡事件”才是真正意義上的“冒泡”,它從DOM最低層逐層遍歷樹(shù),然后附加相應(yīng)事件。以下面代碼為例:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
查看運(yùn)行效果
事件監(jiān)聽(tīng)
事件監(jiān)聽(tīng)準(zhǔn)確一點(diǎn)講可以說(shuō)是js引擎對(duì)用戶鼠標(biāo)、鍵盤、窗口事件等動(dòng)作的監(jiān)視進(jìn)行的操作,也就是針對(duì)用戶相應(yīng)的操作進(jìn)行附加事件,常用的類似 btnAdd.onclick="alert('51obj.cn')"就是一種簡(jiǎn)單的附加事件,只不過(guò)這種方法不支持附加多個(gè)事件以及刪除事件。以下代 碼將實(shí)現(xiàn)附加事件后刪除事件(IE下):
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
查看運(yùn)行結(jié)果
IE不能稱為標(biāo)準(zhǔn)的DOM瀏覽器,即使是最新的IE8,相對(duì)于標(biāo)準(zhǔn)DOM如Firefox、Opera等,它是個(gè)“異類”;在Firefox中才真正有稱為事件監(jiān)聽(tīng)的函數(shù)addEventListener,如下例
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
查看運(yùn)行效果
從上面兩個(gè)例子看出attachEvent在Firefox中并不支持,IE也不支持addEventListener.因此需要使用兼容性的方法。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
您可能感興趣的文章:
- JS 事件綁定、事件監(jiān)聽(tīng)、事件委托詳細(xì)介紹
- js事件監(jiān)聽(tīng)器用法實(shí)例詳解
- js事件監(jiān)聽(tīng)機(jī)制(事件捕獲)總結(jié)
- js實(shí)現(xiàn)滑動(dòng)觸屏事件監(jiān)聽(tīng)的方法
- javascript在事件監(jiān)聽(tīng)方面的兼容性小結(jié)
- JavaScript綁定事件監(jiān)聽(tīng)函數(shù)的通用方法
- javascript事件委托的方式綁定詳解
- JS實(shí)現(xiàn)為動(dòng)態(tài)添加的元素增加事件功能示例【基于事件委托】
- JavaScript中的事件委托及好處
- JavaScript動(dòng)態(tài)添加事件之事件委托
- javascript性能優(yōu)化之事件委托實(shí)例詳解
- javascript事件監(jiān)聽(tīng)與事件委托實(shí)例詳解
相關(guān)文章
原生js實(shí)現(xiàn)表單的正則驗(yàn)證(驗(yàn)證通過(guò)后才可提交)
這篇文章主要給大家介紹了關(guān)于如何利用原生js實(shí)現(xiàn)表單的正則驗(yàn)證,所有驗(yàn)證都通過(guò)后提交按鈕才可用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
prettier自動(dòng)格式化去換行的實(shí)現(xiàn)代碼
這篇文章主要介紹了prettier自動(dòng)格式化去換行的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
jQuery判斷密碼強(qiáng)度實(shí)現(xiàn)思路及代碼
實(shí)現(xiàn)思路為:密碼小于六位的時(shí)候,密碼強(qiáng)度圖片都為灰色;密碼為七位及以上并且字母、數(shù)字、特殊字符三項(xiàng)中有兩項(xiàng),強(qiáng)度等等,感興趣的朋友可以參考下哈2013-04-04
JavaScript中函數(shù)的四種調(diào)用方式總結(jié)
這篇文章主要為大家詳細(xì)介紹了JavaScript中函數(shù)的四種調(diào)用方式,文中的示例代碼講解詳細(xì),對(duì)我們深入掌握J(rèn)avaScript有一定的幫助,需要的可以參考下2023-10-10
JavaScript onclick與addEventListener使用的區(qū)別介紹
addEventListener()方法用于向指定元素添加事件句柄,使用 removeEventListener()方法來(lái)移除,onclick和addEventListener事件區(qū)別是:onclick事件會(huì)被覆蓋,而addEventListener可以先后運(yùn)行不會(huì)被覆蓋,addEventListener可以監(jiān)聽(tīng)多個(gè)事件2022-09-09
javascript 正則替換 replace(regExp, function)用法
剛在弄網(wǎng)頁(yè)通過(guò)servlet返回的json數(shù)據(jù)來(lái)添加div元素,簡(jiǎn)單研究了下replace(regExp, function)方式的function參數(shù).2010-05-05

