js如何清除所有绑定的事件?
1.addEventListener()与removeEventListener()用于处理指定和删除事件处理程序操作;
2.所有的DOM节点中都包含这两种方法,并且它们都接受3个参数:要处理的事件名、作为事件处理程序的函数和一个布尔值。最有这个布尔值参数是true,表示在捕获阶段调用事件处理程序;如果是false,表示在冒泡阶段调用事件处理程序;
3.由于IE只支持事件冒泡,所以同大多数情况下,都是将事件处理程序添加到事件流的冒泡阶段,这样可以最大限度地兼容各种浏览器;
最好只在需要在是事件到达目标之前截获它的时候将事件处理程序添加到捕获阶段。如果不是特别需要,不建议在事件捕获阶段注册事件处理程序。
直接用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>
正常情况(即非动态插入DOM对象)下,ng-click这样的指令之所以有效(即点击之后能调用注册在可见作用域里的方法),是因为angular在compilingphase(编译阶段)将宿主DOM对象(即加入了ng-click指令的DOM对象)绑定在当前作用域内了。
换言之,当前作用域知道有这个绑定了ng-click的DOM对象存在,所以ng-click才会起作用。
你可以看看 jQuery 的 siblings 这个函数,可以得到同层次的兄弟节点,很方便