js添加事件和移除事件:addEventListener()与removeEventListener()

js添加事件和移除事件:addEventListener()与removeEventListener(),第1张

addEventListener()与removeEventListener()用于处理指定和删除事件处理程序 *** 作。

它们都接受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动态给对象添加事件的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11699986.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存