6

どこにも行かないアンカーがありますが、onclickがあります(例<a onclick="..."></a>)。私の質問はhref属性に関するものです。私はその価値のために何を置くべきですか?

単に省略した場合href、アンカーには適切な装飾がありません。マウスをその上に置いても、マウスポインタのアイコンは変わりません。

を使用するhref="#"と、リンクをクリックするとウィンドウがページの一番上までスクロールします。

を使用してproceedinghref="javascript:..."の値を入力すると、リンクがクリックされたときにページが残り、アドレスバーにJavascriptが含まれます。onclickjavascript:

ブラウザの動作について言及するときは、最初にテストしているChromeについて言及しています。

アンカーが実際のリンクではなく、実行動作を行うためhrefだけに存在する場合、何を設定する必要がありますか?onclick

4

6 に答える 6

12

理想的には、Javascriptが無効になっている人のためのオプションがあります。

<a href="degrade_option.html" onclick="return fancy_option();">do the option!</a>

そのようなことに興味がない場合は、実際にはそうあるべきですが、最も一般的な方法は、ポンドを使用してからイベントをキャンセルして、デフォルトのアクションが発生しないようにすることです。

<a href="#" onclick="return do_something();">do something</a>

ただし、必ずdo_something返品する必要がありますfalse。(または、クリックハンドラーの最後に追加することもできますreturn false;が、これはさらに見苦しいほど速くなります)

ただし、正直なところ、そもそもインラインのJavascript属性を使用するべきではありません。それらは悪い習慣であり、維持するのは悪夢であり、そこにははるかに優れた選択肢があります。

編集:あなたのコメントに応えて、代替案は控えめなJavaScriptです:

「控えめなJavaScript」は、ワールドワイドウェブで使用されているJavaScriptプログラミング言語の新しい手法です。この用語は正式には定義されていませんが、その基本原則には一般的に次のものが含まれると理解されています。

  • Webページの構造/コンテンツおよびプレゼンテーションからの機能(「動作レイヤー」)の分離
  • 従来のJavaScriptプログラミングの問題(ブラウザーの不整合やスケーラビリティの欠如など)を回避するためのベストプラクティス
  • 高度なJavaScript機能をサポートしない可能性のあるユーザーエージェントをサポートするためのプログレッシブエンハンスメント

いくつかの例については、ページをお読みください。

于 2009-07-27T19:52:29.380 に答える
11

onclickハンドラーで、これを最後に追加します。

return false;

これにより、デフォルトの処理がキャンセルされ(つまり、リンクをたどる)、hrefに好きなものを入れることができます(#はどれでも同じです)。

于 2009-07-27T19:53:18.597 に答える
4
<a href="javascript:void(0);" onclick="...">txt</a>
于 2009-07-27T19:53:35.523 に答える
1

使用しない場合は、href(W3C仕様では必須ではありません)を削除することを好みます。期待されるマウスカーソルを取得するには、CSSを使用してください。

<style type="text/css">
a { cursor: pointer; }
</style>
<a onclick="go();">link</a>
于 2011-03-02T10:58:12.233 に答える
0
<a href="javascript:;">Foo</a>

短く、説明的で、#のようにジャンプしません。

于 2013-05-17T10:40:53.717 に答える
0

これを行うには2つの方法があります。リンクのidタグがである場合、HTMLでlink使用でき、JavaScriptで次のように使用できます。href="#"

$('#link').click(function(evt) {
 // code goes here
 evt.preventDefault();
});

これにより、ブラウザの通常の動作が妨げられます。または

$('#link').click(function(evt) {
 // code goes here
 return false;
});
于 2014-01-28T18:51:35.977 に答える