事件绑定、取消的二种形式 & call
<script>
//call 函数下的一个方法,call方法第一个参数可以改变函数执行过程中的内部this的指向,call方法第二个参数开始就是原来函数的参数列表。 function fn1(a, b) {
alert(this);
alert(a + b);
} fn1(); //window
fn1.call(null, 10, 20); //调用函数 fn1() == fn1.call()
</script>
<script>
function fn1() {
alert(this);
}
function fn2() {
alert(2);
}
//1.给一个对象绑定事件处理函数的第一种形式
//obj.onclick = fn1;
//给一个对象的同一个事件绑定多个不同的函数
//document.onclick = fn1;
//document.onclick = fn2; //会覆盖前面绑定fn1
//2.给一个元素绑定事件函数的第二种形式 /*
IE:obj.attachEvent(事件名称,事件函数);
1.没有捕获
2.事件名称有on
3.事件函数执行的顺序:标准ie ---> 正序 非标准ie---> 倒序
4.this指向window
标准:obj.addEventListener(事件名称,事件函数,是否捕获);
1.有捕获
2.事件名称没有on
3.事件执行的顺序是正序
4.this触发该事件的对象
*/ /*
document.attachEvent('onclick', function() {
fn1.call(document);
});
document.attachEvent('onclick', fn2);
*/ //是否捕获 : 默认是false false:冒泡 true:捕获 function bind(obj, evname, fn) {
if (obj.addEventListener) {
obj.addEventListener(evname, fn, false);
} else {
obj.attachEvent('on' + evname, function() {
fn.call(obj);
});
}
} bind(document, 'click', fn1);
bind(document, 'click', fn2);
</script>
<script> //第一种事件绑定形式的取消 document.onclick = fn1;
document.onclick = null; //取消 /*
第二种事件绑定形式的取消
IE : obj.detachEvent(事件名称,事件函数);
标准 : obj.removeEventListener(事件名称,事件函数,是否捕获);
*/
document.attachEvent('onclick', fn1);
document.attachEvent('onclick', fn2);
document.detachEvent('onclick', fn1); //取消 document.addEventListener('click', fn1, false);
document.addEventListener('click', fn1, true);
document.addEventListener('click', fn2, false); document.removeEventListener('click', fn1, false); //取消
</script>
事件绑定、取消的二种形式 & call的更多相关文章
- Javascript事件绑定的几种方式
Javascript的事件绑定主要有四种方法(一下在IE中运行正常,但不保证其他浏览器): [注:onXXX为某一事件,fun为某一function,domId为某一DOM对象id,event类型见后 ...
- JavaScript-dom4 date string 事件绑定
内置date <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- JavaScript事件绑定的常见方式
在Javascript中,事件绑定一共有3种方式: ① 行内绑定 ② 动态绑定 ③ 事件监听 原文: https://mbd.baidu.com/newspage/data/landingsuper? ...
- JS事件绑定的两种形式
第一种: obj.on*=function(){} var btn=document.getElementById('myBtn'); btn.onclick=function(){ alert(1) ...
- JavaScript事件绑定的三种方式
(一)事件绑定的三种方式 (1)通过on的形式 <script type="text/javascript"> var div = document.getElemen ...
- 第一百二十一节,JavaScript事件绑定及深入
JavaScript事件绑定及深入 学习要点: 1.传统事件绑定的问题 2.W3C事件处理函数 3.IE事件处理函数 4.事件对象的其他补充 事件绑定分为两种:一种是传统事件绑定(内联模型,脚本模型) ...
- 移动端和pc端事件绑定方式以及取消浏览器默认样式和取消冒泡
### 两种绑定方式 (DOM0)1.obj.onclick = fn; (DOM2)2. ie:obj.attachEvent(事件名称,事件函数); 1.没有捕获(非标准的ie 标准的ie底下有 ...
- jQuery使用(七):事件绑定与取消,及自定事件的实现原理
实例方法: on() one() off() trigger() hover() 一.绑定事件与jQuery事件委托 $(selector).eventType(fn); $(selector).on ...
- ASP.NET MVC深入浅出(被替换) 第一节: 结合EF的本地缓存属性来介绍【EF增删改操作】的几种形式 第三节: EF调用普通SQL语句的两类封装(ExecuteSqlCommand和SqlQuery ) 第四节: EF调用存储过程的通用写法和DBFirst模式子类调用的特有写法 第六节: EF高级属性(二) 之延迟加载、立即加载、显示加载(含导航属性) 第十节: EF的三种追踪
ASP.NET MVC深入浅出(被替换) 一. 谈情怀-ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态 ...
随机推荐
- linux--多种包管理工具使用和区别(转)
Linux包管理工具(转) 在正式进入讨论之前,先贴几条非常有用的link: linux 发行版比较:http://zh.wikipedia.org/wiki/Linux%E5%8F%91%E8%A1 ...
- CMake命令之list
用途:提供一些列表操作 list(LENGTH <list><output variable>) list(GET <list> <elementindex ...
- Docker 概念及基本用法
Docker 概念及基本用法 一. 本节内容简介 本实验中我们初步接触Docker的概念和基本用法.需要依次完成下面几项任务: 理解Docker是什么 学习如何在Linux上安装Docker 学习如何 ...
- E20180407-hm
queue n. (人或车辆) 行列,长队; 辫子; vi. (人.车等) 排队等候; vt. (使) 排队,列队等待; compatible adj. 兼容的,相容的; 和谐的,协调的 ...
- Cg profiles,如何使用CGC编译Cg语言(转)
抄“GPU Programming And Cg Language Primer 1rd Edition” 中文名“GPU编程与CG语言之阳春白雪下里巴人” 计算机只能理解和执行由0.1序列(电压序列 ...
- SQL Server 查询入门
普通查询跟带条件的查询 声明:这里我将用通俗易懂的语言去教大家如何理解 SQL Server里的代码. 实例: 1.查询学生表中所有的信息 select * from Student 下面是我的理解 ...
- jQuery同时监听两个事件---实现同时操控两个按键
我们都知道因为js是单线程的,所以没有可以同时触发键盘两个事件的方法 今天我们就来做一个可以实现这个功能方法 先来看一下成品图效果 接下来我们来看下具体是怎么实现的 注释写在了代码里面 <!DO ...
- java webRoot 路径问题
项目部署后的目录结构 src 生成到 WEB-INF\classes文件下; WebRoot 为项目的根目录,应用中“/action”就相当于是系统目录中的”WebRoot/action" ...
- Asp.net core 框架整理
https://github.com/thangchung/awesome-dotnet-core#cms
- Jquery | 基础 | 慕课网 | 层级选择器
选择器中的层级选择器处理关系类型: 子元素 后代元素 兄弟元素 相邻元素 <!DOCTYPE html> <html> <head> <meta http-e ...