事件绑定的两种形式

到现在我学习的事件函数绑定对象都是使用的
obj.on事件名称=函数名

这是我今天学习的第一种事件函数绑定对象方法。

这种方法有一个缺点就是这个对象的同意个事件只能绑定一个函数,
那么就需要第二种事件函数绑定对象的方法了。

第二种方法存在着兼容性的问题
ie:obj.attachEvent(事件名称,事件函数);//ie的非标准下顺序是倒序,事件名称有on前缀
标准:obj.addEventListener(事件名称,事件函数,是否捕获);//事件名称没有on前缀
是否捕获:默认是false

false:冒泡 true:捕获

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script>
window.onload = function(){
function fn1(){
alert(1);
}
function fn2(){
alert(2);
}
//document.addEventListener(‘click‘,fn1,false);
//document.addEventListener(‘click‘,fn2,false);
document.attachEvent(‘onclick‘,fn1);
document.attachEvent(‘onclick‘,fn2);
}
</script>
</head>
<body>
</div>
</body>
</html>

时间: 2024-10-18 06:03:18

事件绑定的两种形式的相关文章

JS事件绑定的两种形式

第一种: obj.on*=function(){} var btn=document.getElementById('myBtn'); btn.onclick=function(){ alert(1); } 这种方法是很常用,就是将一个函数赋值给一个事件处理程序. 它的优点是简单,然后具有跨浏览器的优势,现代所有浏览器都支持. 如果要取消这种形式绑定的事件,可以将事件处理程序属性的值设为null: btn.onclick=null; //删除事件处理程序 但是,这种形式的绑定有一个缺点,那就是不

事件绑定的第二种形式

一.过去,给一个对象绑定一个事件,来处理函数的形式,如obj.onclick=fn1,我们称之为事件绑定的第一种形式(赋值形式). 这种形式的有一种缺点就是:同一个对象的同一个事件不能同时处理两个不同的函数. 例如: function fn1(){ alert("A") } function fn2(){ alert("B") } document.onclick=fn1; document.onclick=fn2;//后面一个事件会覆盖前面一个事件 二.为了解决上

事件绑定的第二种形式 &amp; 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> //给一个对象绑定一个事件处理函数

事件绑定的几种常见方式

在项目开发中,经常遇到绑定事件不起作用,或者事件绑定多次,导致重复触发.为了应对所遇到的问题,上网查阅了一些资料,对事件绑定做了一些系统研究.##1.事件绑定的几种常见方式(以click事件为例) $(selector).click(function(){...}) $(selector).bind("click",function(){...}) $(selector).live("click",function(){...}) $(document).deleg

jquery事件绑定的几种用法

常见的事件绑定的几种方法 主要有on(),bind(),live(),delegate(),随着版本的不断更新,live(),bind(),delegate()被相继弃用.live():1.7版本之后被弃用bind().delegate():3.0版本之后被弃用虽然在3.0之后的版本中有bind和delegate在,但在具体的实现上还是调用的on() bind: function( types, data, fn ) { return this.on( types, null, data, fn

MyBatis collection的两种形式——MyBatis学习笔记之九

与association一样,collection元素也有两种形式,现介绍如下: 一.嵌套的resultMap 实际上以前的示例使用的就是这种方法,今天介绍它的另一种写法.还是以教师映射为例,修改映射文件TeacherMapper.xml如下(点击此处进入嵌套resultMap形式的示例源码下载页面.注:本示例代码是在修改本系列的上篇博文示例代码的基础上完成的,用到了MapperScannerConfigurer和注解等知识.对这些知识不熟悉的读者,可参考上篇博文:http://legend20

DropdownList绑定的两种方法

动态绑定方法一:动态绑定数据库中的字段. SqlConnection conn = UtilitySqlClass.OperateDataBase.ReturnConn();string strSQL = "select * from CompanyType";SqlDataAdapter ada = new SqlDataAdapter(strSQL, conn);DataSet ds = new DataSet();ada.Fill(ds, "CompanyType&qu

include的两种形式与介绍

include的另种形式和区别先简单的说下include的两种形式:<% include file="" %>:为静态包含(加载)<jsp:include page="" flush="true" />:为动态包含(加载) 简单来解释一下静态包含和和动态包含:静态包含:JSP编译器编译的时候已经包含好相应的文件,生成一个java_servlet,对应的Servlet文件中已经包含了被包含的页面,然后javac编译成一个cl

C# 支持两种形式的字符串:规则字符串和逐字字符串(@字符串)

规则字符串由包含在双引号中的零个或多个字符组成(如 "hello"),并且可以包含简单转义序列(如表示制表符的 \t).十六进制转义序列和 Unicode 转义序列. 逐字字符串由 @ 字符后跟开始的双引号字符.零个或多个字符以及结束的双引号字符组成.一个简单的示例就是 @"hello".在逐字字符串中,分隔符之间的字符逐字解释,唯一的例外是"引号转义序列".具体说来,在逐字字符串中不处理简单转义序列以及十六进制 和 Unicode 转义序列.逐