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

首頁 > 編程 > JavaScript > 正文

js 動態(tài)給元素添加、移除事件的實現(xiàn)方法

2019-11-20 09:26:59
字體:
供稿:網(wǎng)友

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

/addEventListener(),removeEventListener()用于處理指定和刪除事件處理程序的操作//作用域:事件處理程序會在其所屬元素的作用域內(nèi)運行//addEventListener(event,function,capture/bubble);removeEventListener(event,function,capture/bubble)//參數(shù)event如上表所示, function是要執(zhí)行的函數(shù), capture與bubble分別是W3C制定得兩種時間模式,//簡單來說capture就是從document的開始讀到最后一行, 再執(zhí)行事件, 而bubble則是先尋找指定的位置再執(zhí)行事件.//capture/bubble的參數(shù)是布爾值, True表示用capture, False則是bubble  function addEvent() {      var obj = document.getElementById("txtIataCity");      if (window.addEventListener) {        //其它瀏覽器的事件代碼: Mozilla, Netscape, Firefox        //添加的事件的順序即執(zhí)行順序 //注意用 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')});      }    }

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

//通過addEventListener()添加的事件只能通過removeEventListener()來移除. 是這樣做的啊 下面還有一句://移除時addEventListener()添加的匿名函數(shù)將無法移除 問題找到了 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        //添加的事件的順序即執(zhí)行順序 //注意用 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'));      }    }

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

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

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

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 达孜县| 木兰县| 洪泽县| 永德县| 垫江县| 荣昌县| 胶州市| 出国| 沂水县| 临武县| 开封县| 许昌市| 鄄城县| 连南| 高雄县| 温泉县| 拉孜县| 赞皇县| 邻水| 基隆市| 小金县| 杨浦区| 塘沽区| 临夏市| 邢台县| 盐城市| 上饶市| 襄城县| 东兴市| 易门县| 林芝县| 文化| 如东县| 铁岭县| 岐山县| 邹平县| 革吉县| 延长县| 贞丰县| 丹凤县| 班戈县|