注册多个事件可以考虑使用
对象.addEventListener('click', function() {})
可以注册多个事件。
如果的确想用onclick = function() {}来绑定,那可以考虑用一个数组把要绑定的函数存起来,示例:
var onclickHandles = []onclickHandles.push(function(){ /*fn1*/})
onclickHandles.push(function(){ /*fn2*/})
elem.onclick = function() {
for (var i=0 i<onclickHandles.length ++i) {
onclickHandles[i].apply(this, arguments)
}
}
attachEvent是ie添加事件处理程序,接收两个参数,其中事件类型名称要加"on",可以添加多个事件处理程序,按照添加顺序相反的顺序触发
addEventListener是给非ie添加事件处理程序,接收三个参数,第一个是事件名,不需要加“on”,
第二个是绑定的函数,第三个参数是一个布尔值,是事件的方式,意思是是否使用useCatch方式,
如果是false,就使用传统的冒泡方式,如果为true,就在捕获阶段调用事件处理程序。
addEventListener可以添加多个事件处理程序,按照添加顺序触发
二者有个本质上的区别,attachEvent的事件处理程序会在全局作用域中运行,this等于window对象,
而addEventLinstener添加的事件处理程序是在其依附的元素的作用域中运行的,this等于绑定元素对象。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)