javascript - 阻止事件继续运行,我到底该用哪个函数
大家讲道理
大家讲道理 2017-04-10 15:02:38
[JavaScript讨论组]

在jquery里我经常看到有人两种都用

jsa.click(function () {
    event.stopPropagation()
    return false;
});

是因为兼容性考虑吗?我只是想阻止后面的事件继续运行,到底该用哪种

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
大家讲道理

preventDefault, stopPropogation, return false 对比

方法 事件冒泡 默认事件
return false 不冒泡 不执行
preventDefault() 冒泡 不执行
stopPropogation() 不冒泡 执行

也就是说:

function() {
  return false;
}

// 相当于    
function(e) {
  e.preventDefault();
  e.stopPropagation();
}
迷茫

一般情况下使用在jquery中使用return false,既阻止了默认事件也阻止了冒泡事件

实际上如果a标签的href=“javascript:void(0)”的时候,

在IE6以上的浏览器中增加click事件是不用使用return false的

但是在IE6中,会导致链接失效,因为在click事件执行后执行了默认事件javascript:void(0)

所以这个时候很多人写成return false, 这个基本是暴力解决方案

当然使用preventDefault()就可以解决问题了。

我想代码中使用stopPropagation(),可能是他没有弄明白到底是什么原因导致的链接失效吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号