jQuery阻止同类型事件小结 - Web前端
作者:98wpeu发布时间:2026-10-07分类:网页前端技术浏览:6
导读:复制代码代码如下:<!DOCtypehtml><HTML><head><title>test</title>&...
复制代码 代码如下:
<!DOCtypehtml>
<HTML>
<head>
<title>test</title>
<script src="http://code.JQuery.com/jQuery-1.9.1.min.JS"></script>
</head>
<body>
<div style="height:300px;background-color:red;" id="red">
<div style="height:200px;background-color:green;" id="green">
</div>
</div>
</body>
</html>
在上面的HTML中,red元素是green元素的父元素。
复制代码 代码如下:
$(function(){
$("#green").click(function(event){
alert("green click1");
});
$("#green").click(function(event){
alert("green click2");
});
$("#red").click(function(event){
alert("red click");
});
});
上面的js代码给red元素和green元素添加了三个click事件。
当点击子元素green元素时,会依次执行green click1、green click2、red click事件。
事件追加:点击green元素会依次执行green click1、green click2两个事件(同一元素的同类型事件)。
事件冒泡:点击green元素会触发父元素的red click事件(父级元素的同类型事件)。
1、 在子元素事件函数中阻止事件冒泡
方法1:event.stoppropagation()
复制代码 代码如下:
$(function(){
$("#green").click(function(event){
event.stopPRopagation();
alert("green click");
});
$("#red").click(function(event){
alert("red click");
});
});
方法2:returnfalse
复制代码 代码如下:
$(function(){
$("#green").click(function(event){
alert("green click");
return false;
});
$("#red").click(function(event){
alert("red click");
});
});
通过上面的两种方法,点击子元素green区域后,red click事件被阻止不再执行。但不会影响red元素其他区域的点击。
二者区别:
return false相当于event.preventDefault()+event.stopPropagation()。
2、 在父元素事件函数中阻止事件冒泡
复制代码 代码如下:
$(function(){
$("#green").click(function(event){
alert("green click");
});
$("#red").click(function(event){
if(event.target == this)
{
alert("red click");
}
});
});
通过if(event.target== this)判断点击的目标元素是不是red元素本身,如果不是red本身而是它的子元素green元素,则不会执行if内的代码。
3、 阻止事件追加
以上的方法只能阻止事件冒泡(也就是父级元素的同类型事件),但不能阻止事件追加(同一元素的同类型事件)。
复制代码 代码如下:
$(function(){
$("#green").click(function(event){
event.stopImmediatePropagation();
alert("green click");
});
$("#green").click(function(){
alert("green click2");
});
});
event.stopImmediatePropagation()不但可以阻止green click2事件,同时也阻止事件冒泡。
<!DOCtypehtml>
<HTML>
<head>
<title>test</title>
<script src="http://code.JQuery.com/jQuery-1.9.1.min.JS"></script>
</head>
<body>
<div style="height:300px;background-color:red;" id="red">
<div style="height:200px;background-color:green;" id="green">
</div>
</div>
</body>
</html>
在上面的HTML中,red元素是green元素的父元素。
复制代码 代码如下:
$(function(){
$("#green").click(function(event){
alert("green click1");
});
$("#green").click(function(event){
alert("green click2");
});
$("#red").click(function(event){
alert("red click");
});
});
上面的js代码给red元素和green元素添加了三个click事件。
当点击子元素green元素时,会依次执行green click1、green click2、red click事件。
事件追加:点击green元素会依次执行green click1、green click2两个事件(同一元素的同类型事件)。
事件冒泡:点击green元素会触发父元素的red click事件(父级元素的同类型事件)。
1、 在子元素事件函数中阻止事件冒泡
方法1:event.stoppropagation()
复制代码 代码如下:
$(function(){
$("#green").click(function(event){
event.stopPRopagation();
alert("green click");
});
$("#red").click(function(event){
alert("red click");
});
});
方法2:returnfalse
复制代码 代码如下:
$(function(){
$("#green").click(function(event){
alert("green click");
return false;
});
$("#red").click(function(event){
alert("red click");
});
});
通过上面的两种方法,点击子元素green区域后,red click事件被阻止不再执行。但不会影响red元素其他区域的点击。
二者区别:
return false相当于event.preventDefault()+event.stopPropagation()。
2、 在父元素事件函数中阻止事件冒泡
复制代码 代码如下:
$(function(){
$("#green").click(function(event){
alert("green click");
});
$("#red").click(function(event){
if(event.target == this)
{
alert("red click");
}
});
});
通过if(event.target== this)判断点击的目标元素是不是red元素本身,如果不是red本身而是它的子元素green元素,则不会执行if内的代码。
3、 阻止事件追加
以上的方法只能阻止事件冒泡(也就是父级元素的同类型事件),但不能阻止事件追加(同一元素的同类型事件)。
复制代码 代码如下:
$(function(){
$("#green").click(function(event){
event.stopImmediatePropagation();
alert("green click");
});
$("#green").click(function(){
alert("green click2");
});
});
event.stopImmediatePropagation()不但可以阻止green click2事件,同时也阻止事件冒泡。
相关推荐
- jquery多选项卡效果实例代码(附效果图) - Web前端
- 基于jQuery实现模拟页面加载进度条 - Web前端
- Jquery实现页面加载时弹出对话框代码 - Web前端
- jquery快捷动态绑定键盘事件的操作函数代码 - Web前端
- jQuery 选择器项目实例分析及实现代码 - Web前端
- jQuery获取样式中的背景颜色属性值/颜色值 - Web前端
- jquery的冒泡事件的阻止与允许(三种实现方法) - Web前端
- jquery load事件(callback/data)使用方法及注意事项 - Web前端
- jQuery 翻牌或百叶窗效果(内容三秒自动切换) - Web前端
- ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4【第六章】Foundation之按钮和下拉功能 - Web前端
- 5基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 8分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 9jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


