jQuery:event.preventdefault 不适用于 Firefox(Mac 和 PC)
我有一段 jQuery 在 H3 链接后切换段落。它适用于 PC 上的 IE 和 Chrome 以及 Mac 上的 Safari 和 Chrome。在两个平台的 Firefox 上,单击链接根本没有任何反应?
<script type="text/javascript">
$(document).ready(function(){
$("#rightcolumn .article .collapse").hide();
$("#rightcolumn h3 a").click(function(){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue = false;
};
$(this).parent().next().toggle(400);
});
});
</script>
如果我禁用 event.preventDefault();部分它在 Firefox 中工作,但当然,然后我让页面跳到我不想要的顶部。我该怎么做才能让它在 Firefox 中运行?
I have this bit of jQuery toggling a paragraph after an H3 link. It works in IE and Chrome on PC and Safari and Chrome on Mac. On Firefox on both platforms, clicking the link does nothing at all?
<script type="text/javascript">
$(document).ready(function(){
$("#rightcolumn .article .collapse").hide();
$("#rightcolumn h3 a").click(function(){
if(event.preventDefault){
event.preventDefault();
}else{
event.returnValue = false;
};
$(this).parent().next().toggle(400);
});
});
</script>
If I disable the event.preventDefault(); section it works in Firefox, but of course then I get the page jumping to the top which I don't want. What can I do to get it working in Firefox?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的函数中缺少事件声明。另外,作为惯例,我看到大多数示例都使用 evt 作为变量名称。
TJ Crowder 关于在 function() 中包含 evt 的评论
有关 jQuery 事件的更多说明
You are missing the event declaration from your function. Also as a convention I see most examples using evt as the variable name.
Comment from T.J. Crowder as to including the evt in function()
More explanation on jQuery events
您需要提供 Event 参数:
此问题已在此处得到解答 https://stackoverflow.com/a/17712808
请注意文档中的处理程序将此 eventObject 显示为传递给它的参数: http://api.jquery.com/click/
并注意 Event 对象如何具有 PreventDefault 方法: http://api.jquery.com/category/events/event-object/
You need to provide the Event parameter:
This question already been answered here https://stackoverflow.com/a/17712808
Note how the handler in the docs show this eventObject as the parameter passed to it: http://api.jquery.com/click/
And note how the Event object has the preventDefault method: http://api.jquery.com/category/events/event-object/