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,表示在捕获阶段调用事件处理程序;就是最不具体的节点先接收事件,最具体的节点最后接收事件

直接用js实现比较麻烦,不同版本的浏览器(主要是低版本的)支持的方法会不一样。

建议使用jquery实现:

添加事件例:

$("button").on("click", function(){

    console.log("clicked")

})

移除事件例:

$("button").off("click")

文档链接:http://api.jquery.com/on/

将事件添加到事件分发器事件列表(以及从中移除事件)。

如果事件分发器未绑定任何事件,对其进行调用将没有任何效果。每个事件分发器均有一个与其相关的事件列表。使用 Bind Event 节点可以向此列表中添加事件,使用 Unbind Event 节点可以从此列表中移除事件。 此外,通过 Unbind All Events 节点可以解除当前绑定到事件分发器上的所有事件。

Bind Event 节点可以执行多次,但每个事件只能绑定一次。此外,蓝图类和关卡蓝图中的事件都将添加到相同的事件列表中, 因此 Unbind All Events 节点将解除蓝图类和关卡蓝图中的事件绑定。

创建 Bind Event、Unbind Event 及 Unbind All Events 节点的过程非常相似。以下步骤只说明了 Bind Event 节点的创建方法,但只要在正确步骤处选择了正确的菜单项目,便也能轻松创建 Unbind Event 和 Unbind All Events 节点。

另一种方法:

1.为调用事件分发器的关卡中actor添加一个引用。

2.从引用节点连出输出引脚,松开后显示快捷菜单。

4.Call 节点将出现,actor引用已连接到 Target 引脚。


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

原文地址: https://outofmemory.cn/bake/7992854.html

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

发表评论

登录后才能评论

评论列表(0条)

保存