js 阻止事件冒泡,阻止默认事件

1. event.stopPropagation() 方法

这是阻止事件的冒泡方法,不让事件向 document 上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开,

2. event.preventDefault() 方法

这是阻止默认事件的方法,调用此方法是,链接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素;

3. return false;

这个方法比较暴力,他会同事阻止事件冒泡也会阻止默认事件;写上此代码,连接不会被打开,事件也不会传递到上一层的父元素;可以理解为 return false 就等于同时调用了 event.stopPropagation()event.preventDefault()

4. 代码示例

html 代码:

<div class="box1">
	<a href="http://www.baidu.com" target="_blank"></a>
</div>

css 代码:

.box1{
	height: 200px;
	width: 600px;
	margin: 0 auto;
}
 
.box1 a{
    display: block;
	height: 50%;
	width: 50%;
	background: red;
}

js代码:

  • 第一种
// 不阻止事件冒泡和默认事件		
$('.box1').click(function(){
    console.log('1');
	// 不阻止事件冒泡会打印 1,页面跳转		
});
  • 第二种
// 阻止冒泡
$('.box1 a').click(function(event){
	event.stopPropagation();
    // 不会打印 1,但是页面会跳转		
});	
$('.box1').click(function(){
    console.log('1');	
});
  • 第三种
$('.box1').click(function(){
    console.log('1');
});
$('.box1 a').click(function(event){			
    // 阻止默认事件
    event.preventDefault();
    // 页面不会跳转,但是会打印出1,
});
  • 第四种
$('.box1').click(function(){
console.log('1');
});	
// 阻止冒泡
$('.box1 a').click(function(event){
    event.stopPropagation();
    // 阻止默认事件
    event.preventDefault();
    // 页面不会跳转,也不会打印出1
})
  • 第五种
$('.box1').click(function(){
	console.log('1')				
});	
 
								
$('.box1 a').click(function(event){
	return false;  
    // 页面不会跳转,也不会打印出 1,等于同时调用了 event.stopPropagation() 和 event.preventDefault()
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值