2017-05-29 48 views
0

停止功能我有这个jQuery:的preventDefault从工作

jQuery('#overlayBtn').click(function(e){ 
    e.preventDefault(); 
    jQuery('#overlay').css('display','flex'); 
}); 

如果我删除的preventDefault()它工作正常,但页面跳转到顶部,因为我有一个#作为HREF。我想停止默认点击行为,但是会显示我的覆盖图。

我该怎么做?

+2

你可以包含更多相关的代码,或者甚至更好地使问题的工作片段 –

+0

任何脚本错误 –

回答

2

只需添加在功能return false;

jQuery('#overlayBtn').click(function(e) { 
    jQuery('#overlay').css('display','flex'); 
    return false; 
}); 
+0

谢谢,这个作品,我会尽快标记它的时间限制允许。请问为什么它有效? – Guerrilla

+1

事件处理程序的返回值确定是否也应该发生默认浏览器行为。它几乎与'e.preventDefault();'相同:':https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-flow-cancelation – FieryCat

1

末以其他用户之前所说的,return false;可能是这种情况下,soulution但考虑到这是不是一个好的做法。

请参考以下链接查看你为什么shold't使用该行代码:https://web.archive.org/web/20160603125641/http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/

另外,你可以使用属性href="javascript:void(0)"来达到同样的效果。

+0

但是可靠的跨浏览器解决方案(而IE中的'e.preventDefault'失败)。 – FieryCat

相关问题