0

スタック オーバーフローの人々、

フリースタンディングのヘルプ テキストと、特定の宛先のないその他のリンクを含むフォームをまとめていますが、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 で機能しません。

どんな助けでも大歓迎です。ありがとう

4

3 に答える 3

1

実際、Firefoxは正しいです。keypress イベントが Tab キーをブロックしているため、次の要素に移動するべきではありません。ブラウザがイベントのデフォルトのキー処理を適用するために、keypress を削除します。

$('a[href="#"]').bind('click', function(event){
    return false;
});
于 2011-03-15T10:04:26.743 に答える
1

どのキーが押されたかをいつでも確認して、それに応じて続行できますか?

 var code = (event.keyCode ? event.keyCode : event.which);
 if(code == 9) {
   //Do something
 }
于 2011-03-15T10:10:00.917 に答える
0

event.preventDefault(); を適用しますか? あなたの問題を解決します。

于 2011-03-15T10:07:46.543 に答える