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

首頁 > 開發(fā) > JS > 正文

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

2024-05-06 16:31:36
字體:
供稿:網(wǎng)友

最近項目中要要到 js動態(tài)給給元素綁定事件,剛好之前沒用到過這些,順便學習一下,于是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)容了,希望能給大家一個參考,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巫溪县| 佳木斯市| 山阳县| 屏东县| 察哈| 茶陵县| 新余市| 建昌县| 桦南县| 调兵山市| 龙井市| 益阳市| 黄浦区| 屏东县| 驻马店市| 全州县| 夏津县| 尤溪县| 东阳市| 修文县| 丁青县| 和硕县| 鱼台县| 河西区| 白水县| 陇川县| 泾川县| 瓮安县| 泊头市| 叶城县| 洪雅县| 永昌县| 南安市| 民勤县| 邵阳县| 望都县| 双鸭山市| 台前县| 清徐县| 合阳县| 建始县|