2

インラインコードでリンク要素(A)をクリックしたときに、ブラウザーが場所を変更するという動作をスキップするための好ましい方法は何でしょうか。

<a href="javascript:void(0)">void(0)</a> // I have always used this one

または

<a href="javascript:;">:;</a> // This one is simple and now a days my favourite

または

<a href="#">#</a> // Scroll to the top

または、どのように、そしてなぜですか?ベストプラクティスは何ですか?

4

3 に答える 3

0

個人的には、jsとhtmlを混在させるのではなく、リンクにアクションを「注入」することを好みます。そのようにJavaScriptの動作をHTMLでスキャンする必要はありません。

jQueryを使用した簡単な例:http://jsfiddle.net/5nbXT/

于 2012-04-23T19:06:24.097 に答える
0

デフォルトの動作をスキップする理由によって異なります。上記の方法では、href 属性に情報が含まれていないため、リンクはあまり役に立ちません。それらは単なるプレースホルダーです...存在しない ID を参照することもできますが<a href="#phlogiston">dummy link</a>、クリックしても何も起こりません。

リンクに通常の href 属性を持たせたいが、クリックしたときに別のことをしたい場合は、インラインで行いません。代わりにevent.preventDefault()、ページによってロードされたスクリプトを使用して、リンクがクリック イベントをトリガーするたびにメソッドを呼び出します。この回答も参照してください: event.preventDefault() vs. return false

于 2012-04-23T18:47:43.820 に答える
0

href javascript タグの代わりに onclick を使用することを好みます。ただし、必要な場合は false を返します。ブラウザのデフォルト アクション (URL の変更) を停止します。また、最初の 2 つについて私が認識しているマイナス面もありません。3 番目のものは避けてください。非常に長いページでページ スクロールが発生し、ナビゲーターの履歴が汚染される可能性があります。

<a href="javascript:dostuff(); return false;">Do nothing</a>
于 2012-04-23T18:49:02.407 に答える