2012-02-20 12 views
2

次のコードを使用して、ブラウザをマウスの上にではなくマウスの上にリンクするようにします(通常のクリックのように)。に続いて<a>マウスの代わりにマウスをクリックしたときのリンク

$('#links a').each(function(){ 
    $(this).mousedown(function(){ 
    window.location.href=$(this).attr('href'); 
    }); 
}); 

まず、この良い習慣はありますか? GMailはこれを行い、ページが実際よりも速くロードされているという効果をもたらします。

また、これを行うにはより良い方法がありますか?私はこれをすべてのブラウザでまだテストしていないので、古いブラウザで動作するかどうかはわかりません。

+5

Re:良い練習:私は強調していません。あなたは何人(何人か)のユーザーが期待しているものを変えていますそれは遅れのミリ秒よりずっと有害です。 – coreyward

+0

Googleはこれをどこで行っていますか? –

+1

リンクをドラッグ、右クリックなどすることができます。まさに*非常に良い理由なしに動作を変更しないでください。 Gmailはこの方法で動作します。これは、電子メールメッセージでは何もできないためです。ほとんどのリンクについて、気にしないでください。 – Brad

答えて

1

mousedown機能は、Internet Explorerバージョン5.5またはそれ以前のバージョンではサポートされていません。 jQueryは、イベントキャプチャのブラウザ固有の動作をmousedown関数に正規化します。

このようにしてマウスのクリックイベントを処理することによるパフォーマンス上のメリットはありません。あなたがそうする特別な理由がなければ、私は標準的な慣習にとどまります。

+0

よく50 msのように得ることができます – Ced

0

マウスダウン時に発生する唯一のことは、マウスボタンが実際にダウンしていることをユーザーに示すために必要な効果です。

マウスを上げるまで何も実行しない理由は、元のMacintoshのApple Human Interface Guidelinesに少なくとも戻ります。これにより、マウスをボタンの前に移動することで、クリックを「キャンセル」することができます放す

マウスを下に置くと、プログラムがラグやダイアログボックスをその下から引き出しているという感覚がユーザに与えられます。

関連する問題