本文共 964 字,大约阅读时间需要 3 分钟。
如果在页面中重叠了多个元素,并且重叠的这些元素都绑定了同一个事件,那么就会出
现冒泡问题。//HTML 页面<div style="width:200px;height:200px;background:red;"><input type="button" value="按钮" /></div>//三个不同元素触发事件$('input').click(function () { alert('按钮被触发了!');});$('div').click(function () { alert('div 层被触发了!');});$(document).click(function () { alert('文档页面被触发了!');});注意:当我们点击文档的时候,只触发文档事件;当我们点击 div 层时,触发了 div 和文档两个;当我们点击按钮时,触发了按钮、div 和文档。触发的顺序是从小范围到大范围。这就是所谓的冒泡现象,一层一层往上。jQuery 提供了一个事件对象的方法:event.stopPropagation();这个方法设置到需要触发的事件上时,所有上层的冒泡行为都将被取消。$('input').click(function (e) { alert('按钮被触发了!');e.stopPropagation();});网页中的元素,在操作的时候会有自己的默认行为。比如:右击文本框输入区域,会弹出系统菜单、点击超链接会跳转到指定页面、点击提交按钮会提交数据。$('a').click(function (e) { e.preventDefault();});//禁止提交表单跳转$('form').submit(function (e) { e.preventDefault();});注意:如果想让上面的超链接同时阻止默认行为且禁止冒泡行为,可以把两个方法同时写上:event.stopPropagation()和 event.preventDefault()。这两个方法如果需要同时启用的时候,还有一种简写方案代替,就是直接 return false。$('a').click(function (e) { return false;});转载地址:http://ylosl.baihongyu.com/