私は以前はそうしていhref="#"
ましたが、他に方法はありますか?
このような種類のリンクをクリックすると、表示されているページの前にユーザーが移動することがあるため、リンクをクリックしてスクリプトをロードしたいと思います。
私は以前はそうしていhref="#"
ましたが、他に方法はありますか?
このような種類のリンクをクリックすると、表示されているページの前にユーザーが移動することがあるため、リンクをクリックしてスクリプトをロードしたいと思います。
を使用し<a href="#">Click</a>
続けますが、Javascript/jQuery を使用して、ページがジャンプしないようにします。
$('a').click(function() {
// do whatever
return false;
}
return false 行により、ブラウザはリンクをたどることができなくなります。この場合、ページの先頭へのジャンプが停止します。
またはを<a>
使用するのではなく、リンクをタグとして保持する必要があります。これは、はるかに意味論的であるためです (つまり、ユーザー/クローラーは、リンクであるため、何かを行う必要があることがわかります)。span
div
また、インライン Javascript (つまり ) の使用も避ける必要がありonclick="doSomething()"
ます。これは、動作を変更したい場合や、Javascript をできるだけ目立たないようにしたい場合に非常に苦痛になるためです。
はい、href="#" でスクロールします...
あなたが試すことができます:
<a href="javascript:void(0);" onclick="doIt(); return false;">Woho</a>
同じページにイベントが必要なgood markup
場合。div or span
したがって、これを使用してその上で定義する方が良いでしょうclick event
。
div{
color:red;
}
JS
$('div').click{function(
)};
onclick
属性は、任意の要素で使用できます。たとえば、
<span onclick="foo()">Do something</span>
を使用する習慣は、ブラウザーが一般にリンク (技術的な意味で:属性を持つ要素) のみをhref="#"
サポートしていなかった初期の時代からの名残りです。それは橋の下の水ですが、特に人々が理由を知らずにそれらを採用した場合、古い習慣はしばしば死ぬことはありません.onclick
a
href
の代わりにspan
、 も使用a
できます。href
属性がなければ、a
要素に特別な意味はありません。
非破壊性の原則により、要素はページの静的な部分ではなく、JavaScript を使用して動的に生成する必要があります (JavaScript が無効になっている場合、関連性のある印象を与えますが、何もしないため)。
使わない理由onclick
<a href="#" onclick="doMyThing() return false;" />
SO に関する同様の議論、href-tag-for-javascript-links-or-javascriptvoid0
href="javascript:void(0)"
ありがとうヤニロ
@Yaniro が href="javascript:void(0)" を使用できるとコメントしたように、その理由は次のとおりです。
JavaScript ボイド 0 の説明
Web ブラウザは、URL として使用されているものを何でも取得してロードしようとします。新しいページを読み込まずに JavaScript Alert ステートメントを使用できる唯一の理由は、alert が null 値を返す関数であるためです。これは、ブラウザーが新しいページを読み込もうとすると、null が表示され、何も読み込まれないことを意味します。
ここで注意すべき重要な点は、値を返す URL として JavaScript ステートメントを使用した場合、ブラウザーはページを読み込もうとすることです。この不要なアクションを防ぐには、そのようなステートメントで void 関数を使用する必要があります。これは常に null を返し、新しいページをロードすることはありません。
抽出元: JavaScript Void 0 説明