这里末尾为什么要return false?

来源:3-1 tab切换综合示例

weixin_慕前端6235132

2020-07-04 14:42:43

http://img.mukewang.com/climg/5f0024ce0936512b05650570.jpg

写回答

3回答

好帮手慕码

2020-07-05

同学你好,例如使用mouseover/mouseout事件会发生事件冒泡,也就说触发子元素的事件,同时会触发父元素上mouseover/mouseout事件,示例:

http://img.mukewang.com/climg/5f01702c09da930107210845.jpg

测试结果如下:移入子元素灰色盒子,同时会触发父元素的移入移出事件

http://img.mukewang.com/climg/5f01704209a3f93514230608.jpg

如果我们不想在移入移出子元素时,触发父元素的同类型事件,那么就可以在子元素事件中阻止事件冒泡。阻止事件冒泡有两种方法。return false 和e.stopPropagation(). 使用任意一种方式都可以。 示例:

http://img.mukewang.com/climg/5f01706109b2e39a09170771.jpg

此时在移入子元素就不会在再出发父元素的mouseout和mouseover事件了

http://img.mukewang.com/climg/5f01707609bbe26b13340584.jpg

同学可以测试理解下,祝学习愉快

0

weixin_慕前端6235132

提问者

2020-07-05

什么情况下,需要阻止事件冒泡?

0

樱桃小胖子

2020-07-04

同学你好,return false的作用是阻止默认行为,但是,return false除了阻止默认行为之外,还会阻止事件冒泡。同学的这段代码中,给a绑定了事件,且a有自己的默认行为。所以当点击a时,a的默认行为就会立马触发(如链接跳转等),虽然return false也可以阻止默认行为,但是放在最后,a的默认行为还是会触发。所以同时在最前面先使用了e.preventDefault()阻止默认行为 。因为只有片段代码,老师无法准确判断,这里的return false应该是为了阻止事件冒泡。如果不需要阻止冒泡,也可以不使用return false。

希望可以帮到你!

0

0 学习 · 6815 问题

查看课程