事件的传播方式

    <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添加/移除事件的更多相关文章

  1. a标签添加移除事件及开启禁用事件

    一.添加移除点击事件 <script type="text/javascript" src="jquery.min.js"></script& ...

  2. js添加事件、移除事件、阻止冒泡、阻止浏览器默认行为等写法(兼容IE/FF/CHROME)

    转自:http://blog.csdn.net/itchiang/article/details/7769341 添加事件   var addEvent = function( obj, type, ...

  3. 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结

    史上最全的CSS hack方式一览 2013年09月28日 15:57:08 阅读数:175473 做前端多年,虽然不是经常需要hack,但是我们经常会遇到各浏览器表现不一致的情况.基于此,某些情况我 ...

  4. js添加事件监听的方式与this

    js添加事件监听与this js添加事件监听的方式与this 在标签中调用自定义函数 DOM0级事件处理程序 DOM2级事件处理程序 this 代表谁? js添加事件监听的方式与this <di ...

  5. 原生JS添加事件方法

    事件 事件添加方式 EvenTarget.addEventListener(EvenName, functionName, option); EventName: example => clic ...

  6. ThinkPHP框架下,给jq动态添加的标签添加点击事件移除标签

    jq移除标签主要就是$("#要移除的id").remove();不再赘述,这里要提醒的是jq中动态添加标签后怎样添加点击事件.一般的jq添加点击事件是用这种方法$("#i ...

  7. jq添加和移除事件的方法,prop和attr

    会在写条件判断的时候遇到,今天在判断没有剩余产品的时候,移除事件.当有产品的时候添加事件: 移除onClick事件: $("a").removeAttr("onclick ...

  8. JS添加、设置属性以及鼠标移入移出事件

    源代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  9. js给页面添加回车监测事件,实现回车登录功能

    document.body.addEventListener('keyup', function (e) { ') { $("#btn_login").click(); } }) ...

随机推荐

  1. redis 数据统计(用自增id防止同一秒并发过大没统计成功)

    Redis 缓存保存某段时间累加的数值,加入最大id防止同一秒并发过大,导致只统计了执行时同一秒的部分数据,而同一秒另一部分数据在下次累加时没有统计到缓存中 //coin总数 public funct ...

  2. JavaScript 条件判断算法综合实战

    在赌场21点游戏中,玩家可以通过计算牌桌上已经发放的卡牌的高低值来让自己在游戏中保持优势,这就叫21点算法. 根据下面的表格,每张卡牌都分配了一个值.如果卡牌的值大于0,那么玩家应该追加赌注.反之,追 ...

  3. suse 12sp1 oracle 11g r2 时出现错误 调用/sysman/lib/ins_emagent.mk的目标nmo时出错

    要因为C库的问题,解决办法就是手动指定C库位置出现agent nmhs问题后,找到$ORACLE_HOME/sysman/lib/ins_emagent.mk文件,在文件里找字符串 $(MK_EMAG ...

  4. springmvc StringHttpMessageConverter 中文乱码的几种解决办法(亲测)

    昨天,将一个原来使用JSR 311作为restful实现的测试系统改成了使用spring mvc,最后测试的时候发现输出的json字符串为乱码,从日志可以看出使用的是StringHttpMessage ...

  5. 模拟实现ATM+购物商城程序

    流程图: 需求: ATM:模拟实现一个ATM + 购物商城程序额度 15000或自定义实现购物商城,买东西加入 购物车,调用信用卡接口结账可以提现,手续费5%支持多账户登录支持账户间转账记录每月日常消 ...

  6. 20145319 《计算机病毒》动态分析lab3-2

    20145319 <计算机病毒>动态分析lab3-2(实践六) 实践过程 基础分析 拿到恶意代码时,首先使用PE ID打开,查看其中一些基础信息以及观察该恶意代码是否加壳,来确定下一步分析 ...

  7. bzoj 2091 The Minima Game - 动态规划 - 博弈论

    题目传送门 需要验证权限的传送门 题目大意 Alice和Bob轮流取$n$个正整数,Alice先进行操作.每次每人可以取任意多的数,得分是这一次取的所有数中的最小值.Alice和Bob都足够聪明,他们 ...

  8. Codeforces 817C Really Big Numbers - 二分法 - 数论

    Ivan likes to learn different things about numbers, but he is especially interested in really big nu ...

  9. ODAC(V9.5.15) 学习笔记(三)TOraSession(3)

    3. 选项 TOraSession的Options有如下内容 名称 类型 说明 CharLength TCharLength 单个字符的长度,缺省0,表示从服务器获取对应的字符集中单个字符长度 Cha ...

  10. A>B等CSS选择器

    这些是CSS3特有的选择器,A>B 表示选择A元素的所有子B元素.与A B的区别在于,A B选择所有后代元素,而A>B只选择一代.另外:没有<的用法. A+B表示HTML中紧随A的B ...