JS添加/移除事件
事件的传播方式
<div id="father">
<div id="son"></div>
</div>
<script>
//事件传播有两种方式
//自下而上 从子级到父级是 事件冒泡
//自上而下 从父级到子级是 事件捕获
var son = document.getElementById("son");
var father = document.getElementById("father");
var arr = [son,father,document,document.body];
for(var i=;i<arr.length;i++){
//传统方式绑定的事件 事件的传播顺序是冒泡顺序
// arr[i].onclick = function(){
// console.log(this);
// }
//第三个参数useCapture如果是false时间的传播顺序是冒泡顺序
// arr[i].addEventListener("click",function(){
// console.log(this);
// },false);
//第三个参数useCapture使用捕获事件的传播顺序是捕获顺序
arr[i].addEventListener("click",function(){
console.log(this);
},true)
}
</script>
通过addEventListener(添加点击事件监听器)形式的绑定事件不会互相抵消,从而实现一个按钮控制多个事件。
<button id="btn1">按钮1</button>
<button id="btn2">按钮2</button>
<script>
var btn1=document.getElementById("btn1");
var btn2=document.getElementById("btn2");
//传统方式
btn1.onclick = function(){
console.log("第一个");
}
btn2.onclick = function(){
console.log("第二个");
}
//添加事件监听器
//addEventListener 添加事件监听器
//type listener uesCapture 事件类型 事件处理函数 使用捕获
btn2.addEventListener("click",function(){
console.log("第一个");
},false);
btn2.addEventListener("click",function(){
console.log("第二个");
},false);
//通过添加事件监听器形式绑定事件不会相互抵消
</script>
移除事件
<button id="btn1">按钮1</button>
<button id="btn2">按钮</button>
<script>
var btn1 = document.getElementById("btn1");
var btn2 = document.getElementById("btn2");
//传统方式
btn1.onclick = function(){
console.log("第一个人");
}
btn1.onclick = function(){
console.log("第二个人");
}
// btn1.onclick=null;
//添加事件监听器
//如果添加的事件处理函数将来想要移除就不能使用匿名函数的方式
btn2.addEventListener("click",fn1,false);
function fn1(){
console.log("第二个人");
}
//移除事件监听器
btn2.removeEventListener("click",fn1,false);
</script>
JS添加/移除事件的更多相关文章
- a标签添加移除事件及开启禁用事件
一.添加移除点击事件 <script type="text/javascript" src="jquery.min.js"></script& ...
- js添加事件、移除事件、阻止冒泡、阻止浏览器默认行为等写法(兼容IE/FF/CHROME)
转自:http://blog.csdn.net/itchiang/article/details/7769341 添加事件 var addEvent = function( obj, type, ...
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...
- js添加事件监听的方式与this
js添加事件监听与this js添加事件监听的方式与this 在标签中调用自定义函数 DOM0级事件处理程序 DOM2级事件处理程序 this 代表谁? js添加事件监听的方式与this <di ...
- 原生JS添加事件方法
事件 事件添加方式 EvenTarget.addEventListener(EvenName, functionName, option); EventName: example => clic ...
- ThinkPHP框架下,给jq动态添加的标签添加点击事件移除标签
jq移除标签主要就是$("#要移除的id").remove();不再赘述,这里要提醒的是jq中动态添加标签后怎样添加点击事件.一般的jq添加点击事件是用这种方法$("#i ...
- jq添加和移除事件的方法,prop和attr
会在写条件判断的时候遇到,今天在判断没有剩余产品的时候,移除事件.当有产品的时候添加事件: 移除onClick事件: $("a").removeAttr("onclick ...
- JS添加、设置属性以及鼠标移入移出事件
源代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...
- js给页面添加回车监测事件,实现回车登录功能
document.body.addEventListener('keyup', function (e) { ') { $("#btn_login").click(); } }) ...
随机推荐
- Java线程安全容器
一.Java同步容器 同步容器是用来解决并发情况下的容器线程安全问题的.给多线程环境准备一个线程安全的容器对象. 线程安全的容器对象: Vector, Hashtable.线程安全容器对象,都是使用s ...
- 20145212 罗天晨 WEB登陆发贴及会话管理功能的实现
会话管理简介 Cookie: cookie常用于识别用户. cookie 是服务器留在用户计算机中的小文件,每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie. 通过PHP能够创建并取回 ...
- 《C Elements of Style》 书摘
<C Elements of Style> 书摘 学完C语言和数据结构后,虽然能解决一些问题,但总觉得自己写的程序丑陋,不专业.这时候看到了Steve Oualline写的<C El ...
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) Problem D (Codeforces 831D) - 贪心 - 二分答案 - 动态规划
There are n people and k keys on a straight line. Every person wants to get to the office which is l ...
- Jenkins 总结
步骤: 1,安装Jenkins 2,运行Jenkins: java -jar jenkins.war --httpPort=8888 httpPort指的就是Jenkins所使用的http端口,这里指 ...
- Bootstrap3基础 nav 便签页(横版、竖版)
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...
- 01MySQL的 库、表初步认识
一.安装&完全卸载 1.引导式安装 https://dev.mysql.com/downloads/installer/ 2.下载压缩包,解压后用控制台安装 初始化 mysqld --init ...
- Flask学习【第10篇】:自定义Form组件
wtforms源码流程 实例化流程分析 1 # 源码流程 2 1. 执行type的 __call__ 方法,读取字段到静态字段 cls._unbound_fields 中: meta类读取到cls._ ...
- 洛谷luogu2782
P2782 友好城市 题目描述 有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市.北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同.每对友好城市都向政府申 ...
- [转] J2EE基础知识
Servlet总结 阐述Servlet和CGI的区别? CGI的不足之处: Servlet的优点: Servlet接口中有哪些方法及Servlet生命周期探秘 get和post请求的区别 什么情况下调 ...