jQuery:event.preventdefault无法使用Firefox(mac和PC)

And*_*ale 4 firefox jquery toggle preventdefault

我有一些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> 
Run Code Online (Sandbox Code Playgroud)

如果我禁用event.preventDefault(); 它在Firefox中有效,但当然我将页面跳到顶部,我不想要.我该怎么做才能让它在Firefox中运行?

Nic*_*tes 16

您缺少函数中的事件声明.另外作为惯例,我看到大多数使用evt作为变量名的例子.

$("#rightcolumn h3 a").click(function(evt)
{
   evt.preventDefault();
   $(this).parent().next().toggle(400);
}
Run Code Online (Sandbox Code Playgroud)

来自TJ Crowder的评论,包括函数中的evt()

您需要将参数声明为单击处理程序(事件不是全局的,除了IE和浏览器,它们会向特定于IE的网站投掷骨骼.)请注意,您不需要(或想要)针对preventDefault的测试.jQuery在不提供本机的浏览器上提供它

关于jQuery事件的更多解释