它们都接受3个参数:如 addEventListener("事件名" , "事件处理函数" , "布尔值")(注:事件名不含"on",如“click”) 现在的版本可以省略第三个参数,默认值为false
通过addEventListener()添加的事件处理程序只能使用removeEventListener()来移除;移除时传入的参数与添加处理程序时使用的参数相同。这也意味着通过addEventListener()添加的匿名函数无法移除
这个例子中,使用addEventListener()添加一个事件处理程序。虽然调用removeEventListener(0是看似使用了相同的参数,但实际上,第二个参数与传入addEventListener()中的那一个完全不同的函数。而传入removeEventListener()中的事件处理程序函数必须与传addEventListener()中的相同
重写后的这个例子在addEventListener()和removeEventListener()中用的是相同的函数。
1:相同事件绑定和解除,需要使用共用函数;绑定和解除事件时 事件没有"on" 即onclick写成click
2:共用函数不能带参数;
布尔值参数是true,表示在捕获阶段调用事件处理程序;就是最不具体的节点先接收事件,最具体的节点最后接收事件
1、动态创建元素时,将事件触发方式加入到元素创建中
例如:
document.getElementById('id').innerHTML='<input type="button" onclick="btnClick()" value="aaa"/>'function btnClick(){
alert('事件触发')
}
2、动态创建元素完成后,重新获取该元素绑定事件
例如:
document.getElementById('id').innerHTML='<input type="button" id="btn" />'document.getElementById('btn').onclick=function(){
alert('事件触发')
}
WEB项目中,我们常常会碰到要动态对相应的对象添加事件,如下,有id="txtPrice"的文本框控件:<div>
<input
type="text"
id="txtPrice"
name
=
"txtPrice"
value
=
"0"/>
<div>
现在我们为其动态添加一事件,JS核心代码如下:
document.getElementById("txtPrice").attachEvent('onblur',
function
(){alert('添加事件成功!')})
【补充】
有时候为了实现不同浏览器之前的兼容,我们会这样写:
Code
highlighting
produced
by
Actipro
CodeHighlighter
(freeware)http://www.CodeHighlighter.com/-->1
if(window.attachEvent)
{
document.getElementById("txtPrice").attachEvent('onblur',
function
(){alert('添加事件成功!')})
}
else
{
document.getElementById("txtPrice").addEventListener('onblur',
function
(){alert('添加事件成功!')},false)
}
以上这篇JS动态给对象添加事件的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)