在FireFox中使用href =“#”时返回false时出现选项卡问题

时间:2011-03-15 10:00:00

标签: jquery firefox forms keyboard tabbing

Stack Overflow人民,

我正在组建一个具有独立帮助文本的表单和其他没有特定目标的链接,但是需要激活一些jQuery函数。

例如:

<a href="#" class="inline helpTrigger cursor">Why do we ask for this?</a>

在此链接的点击或按键上,文本旁边会显示一个帮助气泡。由于这个href有一个值(“#”),我必须编写一个函数(如下所示)来阻止页面“跳转”到顶部:

$('a[href="#"]').bind('click keypress', function(event){
    return false;
});

这适用于大多数浏览器,但FireFox在标签浏览时会卡住,并且不会移过此元素。有没有更好的方法,或者这是一个已知的FF问题?

我试过将href完全留空 - 但这在语义上都不正确,或者在IE中不起作用。

非常感谢任何帮助。 感谢

3 个答案:

答案 0 :(得分:1)

实际上,Firefox是正确的。它不应该选项卡到下一个元素,因为按键事件阻止了Tab键。删除按键以使浏览器对事件应用默认密钥处理。

$('a[href="#"]').bind('click', function(event){
    return false;
});

答案 1 :(得分:1)

您可以随时查看按下了哪个键并继续相应的操作?

 var code = (event.keyCode ? event.keyCode : event.which);
 if(code == 9) {
   //Do something
 }

答案 2 :(得分:0)

应用event.preventDefault();解决了你的问题。