jQuery阻止默认行为和阻止冒泡

时间:2021-10-01 03:51:19

1.阻止默认行为:通常是值一个标签的默认行为,如button的提交表单,a标签的跳转等。

那如何阻止标签的默认行为?

  1)return false

  2) e.preventDefault();

<!DOCTYPE html>
<html>
<head>
<title>queue</title>
<meta charset="utf-8">
<script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
<!-- 设置五幅图片 -->
<div> <a class="a1" href="http://www.baidu.com">百度入口一(被阻止)</a>
<a class="a2" href="http://www.baidu.com">百度入口二(可使用)</a> </div>
<script type="text/javascript">
$(function(){
$('.a1').click(function(e){
//return false;
e.preventDefault();
});
})
</script>
</body>
</html>

其中return false不仅阻止默认行为还会阻止冒泡。

2.阻止事件冒泡

事件冒泡是指如果子元素与父元素或者祖先元素包含同样的事件,如click等,当点击子元素时,父元素上的点击事件也会触发。

阻止时间冒泡的方法:

  1)return false

  2)e.stoppropagation();

<!DOCTYPE html>
<html>
<head>
<title>queue</title>
<meta charset="utf-8">
<script type="text/javascript" src="js/jquery.js"></script>
</head>
<body> <div class="div3">
div3
<div class="div2">
div2
<div class="div1">div1</div>
</div>
</div> <script type="text/javascript">
$(function(){
$('div').click(function(e){
alert(e.target.className);
e.stopPropagation();
//return false; });
})
</script>
</body>
</html>

总结:return false会阻止事件冒泡和默认行为

   e.stopPropagation()只阻止事件冒泡;

   e.preventDefault()只阻止默认行为;