jQuery时间冒泡
2015-09-16 17:09
731 查看
事件冒泡:当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。就是当设定了多个div的嵌套时;即建立了父子关系,当父div与子div共同加入了onclick事件时,当触发了子div的onclick事件后,子div进行相应的js操作。但是父div的onclick事件同样会被触发。这就造成了事件的多层并发,导致了页面混乱。这就是冒泡事件。
阻止JavaScript事件冒泡传递的方法:
1.event.stopPropagation();
<div>DivElement
<p>ParagraphElement<br/>
<span>SpanElement</span>
</p>
</div>
2.return(false);
区别:returnfalse不仅阻止了事件往上冒泡,而且阻止了事件本身。event.stopPropagation()则只阻止事件往上冒泡,不阻止事件本身。
程序员可以自己选择绑定事件时采用事件捕获还是事件冒泡,方法就是绑定事件时通过addEventListener函数,它有三个参数,第三个参数若是true,则表示采用事件捕获,若是false,则表示采用事件冒泡。
ele.addEventListener('click',doSomething2,true)
true=捕获
false=冒泡
阻止JavaScript事件冒泡传递的方法:
1.event.stopPropagation();
$(document).ready(function(){ $('div').click(function(event){ alert('div'); }); $('p').click(function(event){ alert('p'); }); $('span').click(function(event){ alert('span'); event.stopPropagation(); }) });
<div>DivElement
<p>ParagraphElement<br/>
<span>SpanElement</span>
</p>
</div>
2.return(false);
$(document).ready(function(){
$('div').click(function(event){
alert('div');
});
$('p').click(function(event){
alert('p');
});
$('span').click(function(event){
alert('span');
return(false);
})
});
<div>DivElement
<p>ParagraphElement<br/>
<span>SpanElement</span>
</p>
</div>
区别:returnfalse不仅阻止了事件往上冒泡,而且阻止了事件本身。event.stopPropagation()则只阻止事件往上冒泡,不阻止事件本身。
程序员可以自己选择绑定事件时采用事件捕获还是事件冒泡,方法就是绑定事件时通过addEventListener函数,它有三个参数,第三个参数若是true,则表示采用事件捕获,若是false,则表示采用事件冒泡。
ele.addEventListener('click',doSomething2,true)
true=捕获
false=冒泡
相关文章推荐
- 讨论下jquery中的重复添加和事件绑定(转)
- jQuery按键事件响应的Demo
- jQuery和javascript获取临近节点方法
- jquery选择器 之 获取父级元素、同级元素、子元素
- 简单的表单验证
- JQUERY实现拖拽进度条显示百分比
- 使用JQUERY实现JSON数据三级联动
- jquery 插件 模板
- jQuery实现折叠、展开的菜单组效果代码
- jQuery图片轮播滚动切换代码分享
- JqueryMobile+HTML5+JS
- jquery 二级导航
- jquery weebox总结
- jQuery中$.ajax()和$.getJson()同步处理详解
- jquery获得option的值和对option进行操作
- Jquery实现图片放大镜效果的思路及代码
- jQuery前端验证多种方式
- jQuery提交JSON文件至php网页,保存为文档文件
- jQuery实现两款有动画功能的导航菜单代码
- Jquery揭秘系列:谈谈bind,one,live,delegate,on事件及实现