js如何清除所有绑定的事件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何清除所有绑定的事件?相关的知识,希望对你有一定的参考价值。

1.addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作;

2.所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。最有这个布尔值参数是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序;

3.由于IE只支持事件冒泡,所以同大多数情况下,都是将事件处理程序添加到事件流的冒泡阶段,这样可以最大限度地兼容各种浏览器;

最好只在需要在是事件到达目标之前截获它的时候将事件处理程序添加到捕获阶段。如果不是特别需要,不建议在事件捕获阶段注册事件处理程序。

参考技术A

直接用js,document.getElementById(id).onclick=function()//内容写在函数体里
或者用jquery,$("#a").click(function() )。

addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作。所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。最有这个布尔值参数是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>摇一摇</title>
</head>

<script>
document.addEventListener("mousedown", mouse, false);//点击鼠标时触发事件
document.addEventListener("keydown", key, false);//按下键盘按键时触发事件

function mouse()
alert('ddd');

function key()
document.removeEventListener("mousedown", mouse, false);
alert('xxx');

</script>
<body>


</body>
</html>

参考技术B

正常情况(即非动态插入DOM对象)下,ng-click这样的指令之所以有效(即点击之后能调用注册在可见作用域里的方法),是因为angular在compilingphase(编译阶段)将宿主DOM对象(即加入了ng-click指令的DOM对象)绑定在当前作用域内了。
换言之,当前作用域知道有这个绑定了ng-click的DOM对象存在,所以ng-click才会起作用。

你可以看看 jQuery 的 siblings 这个函数,可以得到同层次的兄弟节点,很方便

以上是关于js如何清除所有绑定的事件?的主要内容,如果未能解决你的问题,请参考以下文章

js如何清除dom节点上的指定监听事件?

vue.js怎样移除绑定的点击事件

js 为动态添加的元素绑定事件

js如何取消鼠标滚轮绑定的事件

jquery 事件 多次绑定,多次触发,怎么清除历史绑定事件

如何最快速的找到页面某一元素所绑定的点击事件,并查看js代码