js传播事件,取消事件默认行为,并防止事件传播。
在一般情况下,返回值false告诉浏览器不执行与该事件相关的默认动作。例如,表单的提交按钮的onclick事件处理程序可以阻止浏览器提交表单通过返回false,又作为一个标签的onclick事件处理程序中,通过返回false的防止链接的页面跳转。同样的,如果用户输入一个不恰当的字符,在输入字段的键盘事件处理程序可以返回假键盘输入滤波器。
事件处理程序的返回值仅对由属性注册的处理程序具有意义。
2。调用顺序
文档元素或其他对象可以为指定的事件类型注册多个事件处理程序。当发生适当事件时,浏览器必须按照以下规则调用所有事件处理程序:
通过设置对象属性或HTML属性注册的处理程序首先被调用。
这是注册的处理程序调用addEventListener()在其注册的顺序调用。
与attachevent注册处理程序()可以以任何顺序调用,所以代码不应该依赖于调用的顺序
三.事件传播
在调用目标元素上注册的事件处理函数后,大多数事件都冒泡到DOM树根目录中,调用父元素的事件处理程序,然后调用在目标的祖父元素上注册的事件处理程序,这将一直到文档对象,最后到达窗口对象。
大部分的文档元素的事件冒泡,和值得注意的例外是焦点,模糊,和滚动事件。文档的元素的加载事件冒泡,但它停止冒泡的文档对象和不传播的窗口对象,窗口对象的加载事件将触发只当整个文件加载。
4。取消事件默认行为并防止事件传播
在浏览器支持addEventListener(),事件的默认操作可以通过调用preventDefault取消()事件对象的方法,即在IE9中,通过设置事件对象的ReturnValue属性的错误却能达到相同的效果。下面一段代码是取消三技术的事件:
功能cancelhandler(事件){
风险事件=事件| | window.event / IE兼容;
取消与默认行为相关的事件
如果(事件。preventDefault) / /标准
Event.preventDefault();
如果(事件中) / /兼容IE9之前IE
值=虚假事件;
返回false;用于使用对象属性注册处理程序
}
该事件取消相关的默认动作是唯一的活动取消,也可以取消事件的传播。在浏览器支持addEventListener(),()里面的事件对象的方法来阻止事件继续传播。如果其他处理程序对同一对象定义,其余处理程序仍然会被调用,但在电话里面(),在其他任何对象的任何事件处理程序将不会被调用。
在IE9不支持里面的IE()方法,但设置事件对象的属性为true cancelbubble阻止事件的传播。
好了,这是你为你安排的全部内容,我希望能帮助你。