亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

js中addEventListener()與removeEventListener()用法案例分析

瀏覽:120日期:2024-05-23 10:59:06

本文實例講述了js中addEventListener()與removeEventListener()用法。分享給大家供大家參考,具體如下:

所有的DOM節點中都包含addEventListener()與removeEventListener()這兩種方法,用于追加事件和刪除追加。

接受參數:要處理的事件名、作為事件處理程序的函數和一個布爾值。 (3個)

最后這個布爾值參數是true,表示在捕獲階段調用事件處理程序;如果是false,表示在冒泡階段調用事件處理程序。默認為false;

事件傳遞有兩種方式:冒泡與捕獲。

事件傳遞定義了元素事件觸發的順序。 如果你將 <p> 元素插入到 <div> 元素中,用戶點擊 <p> 元素, 哪個元素的 'click' 事件先被觸發呢?

冒泡 中,內部元素的事件會先被觸發,然后再觸發外部元素,即: <p> 元素的點擊事件先觸發,然后會觸發 <div> 元素的點擊事件。

捕獲 中,外部元素的事件會先被觸發,然后才會觸發內部元素的事件,即: <div> 元素的點擊事件先觸發 ,然后再觸發 <p> 元素的點擊事件。

假如在一個按鈕上添加一個點擊事件,代碼如下:

var btn = document.getElementById('myBtn');btn.addEventListener('click', function () { alert(this.id);}, false);

使用DOM2級方法添加事件處理程序的主要好處是可以添加多個事件處理程序。來看下面的例子:

var btn = document.getElementById('myBtn');btn.addEventListener('click', function () { alert(this.id);}, false);btn.addEventListener('click', function () { alert('Hello World');}, false);

通過addEventListener()添加的事件處理程序只能使用removeEventListener()來移除;移除時傳入的參數與添加處理程序時使用的參數相同。通過addEventListener()添加的匿名函數無法移除,如下面的例子所示:

var btn = document.getElementById('myBtn');btn.addEventListener('click', function () { alert(this.id);}, false);btn.removeEventListener('click', function () { //無效! alert(this.id);}, false);

在這個例子中,removeEventListener無法刪除addEventListener所追加的事件,因為兩個方法并不相等,內存地址已經是不同的,如下面的例子所示:

var btn = document.getElementById('myBtn');var handler = function () { alert(this.id); };btn.addEventListener('click', handler, false);btn.removeEventListener('click', handler, false); //有效!

案例:

<div id='myDIV'> div 元素添加了 onmousemove 事件句柄,鼠標在桔紅色的框內移動時會顯示隨機數。 <p>點擊按鈕移除 DIV 的事件句柄。</p> <button onclick='removeHandler()' id='myBtn'>點我</button></div><p id='demo'></p><script>document.getElementById('myDIV').addEventListener('mousemove', myFunction);function myFunction() { document.getElementById('demo').innerHTML = Math.random();}function removeHandler() { document.getElementById('myDIV').removeEventListener('mousemove', myFunction);}</script>

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript操作DOM技巧總結》、《JavaScript頁面元素操作技巧總結》、《JavaScript事件相關操作與技巧大全》、《JavaScript查找算法技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript錯誤與調試技巧總結》

希望本文所述對大家JavaScript程序設計有所幫助。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 亚洲精选在线观看 | 亚洲成人综合视频 | 国产japan色系videos护士 国产jav | 国产高清免费视频 | 国产啪在线 | 亚洲视频国产精品 | 国产一区二区三区四区波多野结衣 | 免费网站在线观看高清版 | 日韩小视频在线播放 | 国产三级在线观看视频不卡 | 午夜在线精品不卡国产 | 黑人特黄aa毛片 | 国产精品久久不卡日韩美女 | 四色草视频 | 国产女主播一区二区在线观看 | 草草影院国产 | 日韩国产午夜一区二区三区 | 日韩在线手机看片免费看 | 久热在线播放中文字幕 | 国产精品免费一区二区区 | 国产免费av片在线观看 | 你懂的成人 | 最新精品视频在线观看 | 青青青亚洲精品国产 | 亚洲欧美另类日本久久影院 | 亚洲黄色片 | 正在播放国产夫妻 | 天天看大片特色视频.vr | 精品一区二区国语对白 | 国产伦一区二区三区免费 | 国产一级淫片免费大片 | 一级毛片美国一级j毛片不卡 | 国产1024精品视频专区免费 | 日鲁夜鲁鲁狠狠综合视频 | 欧美成人片在线 | 97香蕉超级碰碰碰久久兔费 | 国产原创视频在线 | 国产精品日韩精品 | 久久只有这才是精品99 | 国产精品高清一区二区三区 | 国产一级黄 |