js 动态给元素添加、移除事件的实现方法


Posted in Javascript onJuly 19, 2016

最近项目中要要到 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 动态给元素添加、移除事件的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript的面向对象方法以及差别
Mar 31 Javascript
javascript 表单的友好用户体现
Jan 07 Javascript
innerHTML 和 getElementsByName 在IE下面的bug 的解决
Apr 09 Javascript
jquery 操作日期、星期、元素的追加的实现代码
Feb 07 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
Dec 17 Javascript
如何用js控制frame的隐藏或显示的解决办法
Mar 20 Javascript
jQuery 获取浏览器所在的IP地址的小例子
Nov 08 Javascript
jquery可定制的在线UEditor编辑器
Nov 17 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
Aug 29 Javascript
AngularJS通过$sce输出html的方法
Sep 22 Javascript
jquery Banner轮播选项卡
Dec 26 Javascript
原生js实现简单的模态框示例
Sep 08 Javascript
js实现动态创建的元素绑定事件
Jul 19 #Javascript
用js动态添加html元素,以及属性的简单实例
Jul 19 #Javascript
详谈JS中实现种子随机数及作用
Jul 19 #Javascript
全面了解JavaScript对象进阶
Jul 19 #Javascript
EasyUI中在表单提交之前进行验证
Jul 19 #Javascript
jQuery EasyUI提交表单验证
Jul 19 #Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
Jul 19 #Javascript
You might like
一个SQL管理员的web接口
2006/10/09 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
2014/12/05 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
jQuery Easyui快速入门教程
2016/08/21 Javascript
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
Python splitlines使用技巧
2008/09/06 Python
python实现排序算法
2014/02/14 Python
利用Python如何制作好玩的GIF动图详解
2018/07/11 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
信号生成及DFT的python实现方式
2020/02/25 Python
keras中的History对象用法
2020/06/19 Python
汤米巴哈马官方网站:Tommy Bahama
2017/05/13 全球购物
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
聘用意向书范本
2014/04/01 职场文书
工商管理专业自荐信
2014/06/03 职场文书
新教师培训方案
2014/06/08 职场文书
经理岗位职责范本
2015/04/15 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
校园安全教育心得体会
2016/01/15 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
Win11安装受阻怎么办? Windows11安装问题与解决方案汇总
2021/11/21 数码科技
Java中try catch处理异常示例
2021/12/06 Java/Android
Java对文件的读写操作方法
2022/04/29 Java/Android
Golang入门之计时器
2022/05/04 Golang