麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

js 動態給元素添加、移除事件的實現方法

2019-11-20 09:26:59
字體:
來源:轉載
供稿:網友

最近項目中要要到 js動態給給元素綁定事件,剛好之前沒用到過這些,順便學習一下,于是google了一下 事件,寫了如下兩個事件 一個添加事件 ,一個是移除事件

/addEventListener(),removeEventListener()用于處理指定和刪除事件處理程序的操作//作用域:事件處理程序會在其所屬元素的作用域內運行//addEventListener(event,function,capture/bubble);removeEventListener(event,function,capture/bubble)//參數event如上表所示, function是要執行的函數, capture與bubble分別是W3C制定得兩種時間模式,//簡單來說capture就是從document的開始讀到最后一行, 再執行事件, 而bubble則是先尋找指定的位置再執行事件.//capture/bubble的參數是布爾值, True表示用capture, False則是bubble  function addEvent() {      var obj = document.getElementById("txtIataCity");      if (window.addEventListener) {        //其它瀏覽器的事件代碼: Mozilla, Netscape, Firefox        //添加的事件的順序即執行順序 //注意用 addEventListener 添加帶on的事件,不用加on        obj.addEventListener('focus', function(){test('aa')} , false);      }      else {        //IE 的事件代碼 在原先事件上添加 add 方法        obj.attachEvent('onfocus', function(){test('aa')});      }    }     function removeEvnent() {      var obj = document.getElementById("txtIataCity");      if (window.removeEventListener) {        obj.removeEventListener('focus', function(){test('aa')}, false);      }      else {        obj.detachEvent('onfocus', function(){test('aa')});      }    }

頁面加載的時候調用上述方法給input綁定事件,測試添加成功,可是移除始終不成功。于是網上找參考資料

//通過addEventListener()添加的事件只能通過removeEventListener()來移除. 是這樣做的啊 下面還有一句://移除時addEventListener()添加的匿名函數將無法移除 問題找到了 function(){test('aa')}//無效,因為傳入addEventListener()和removeEventListener()的方法不是同一個方法于是將test('aa') 提出來 寫成function test(msg){ alert(msg)}改寫成 function addEvent() {      var obj = document.getElementById("txtIataCity");      if (window.addEventListener) {        //其它瀏覽器的事件代碼: Mozilla, Netscape, Firefox        //添加的事件的順序即執行順序 //注意用 addEventListener 添加帶on的事件,不用加on        obj.addEventListener('focus', test('msg')} , false);      }      else {        //IE 的事件代碼 在原先事件上添加 add 方法        obj.attachEvent('onfocus', test('msg')});      }    }     function removeEvnent() {      var obj = document.getElementById("txtIataCity");      if (window.removeEventListener) {        obj.removeEventListener('focus',test('msg')}, false);      }      else {        obj.detachEvent('onfocus',test('msg'));      }    }

于是乎執行 ie提示: 類型不匹配  看樣子是不支持帶參數的函數 于是再次將函數封裝成無參形式傳入

執行,添加成功,移除還是失敗。在網上找了半天 差不多都是這樣寫的 都成功了,不知道為什么我的就移除不了。

后來看頁面中本來就引用了jquery 于是采用jquery的bind 和unbind 事件 一次成功。

唉,等項目完了 把這個問題解決掉。

以上這篇js 動態給元素添加、移除事件的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲成人高清电影 | 一本色道久久综合亚洲精品图片 | 国产精品免费大片 | 中文字幕在线免费播放 | av在线免费在线观看 | 草莓视频在线导航 | 99精品视频在线观看免费播放 | 日韩视频―中文字幕 | www.精品在线 | 日韩精品网站在线观看 | 黄色一级片在线观看 | 久久精品日产高清版的功能介绍 | 久久91精品国产91久久yfo | 日日操夜夜透 | 欧美日韩在线视频一区 | 日韩三级伦理在线观看 | 天堂成人国产精品一区 | 国产乱淫a∨片免费观看 | www嫩草| 91热久久免费频精品黑人99 | 国产成人在线视频播放 | 黄色网址你懂的 | 在线 日本 制服 中文 欧美 | 91福利在线观看 | 182tv成人福利视频免费看 | 91九色视频 | 97久久精品一区二区三区观看 | 色婷婷久久久 | 亚洲午夜激情网 | av在线官网| 草人人 | 看片一区二区三区 | 欧美亚洲国产一区二区三区 | 国产影院在线观看 | 91色琪琪电影亚洲精品久久 | 久久精品一区二区三区不卡牛牛 | 久久情爱网 | 国产剧情在线观看一区二区 | 亚洲精品tv久久久久久久久久 | 国产一级毛片高清 | 久久小视频|