61

リンクをクリックしたときに一部のコンテンツを表示/非表示にするために、いくつかのJQueryに取り組んでいます。私は次のようなものを作成できます:

<a href="#" onclick="jquery_stuff" />

ただし、ページを下にスクロールしているときにそのリンクをクリックすると、ページの上部にジャンプして戻ります。

私が次のようなことをした場合:

<a href="" onclick="jquery_stuff" />

ページがリロードされ、javascriptが行ったすべての変更がページから削除されます。

このようなもの:

<a onclick="jquery_stuff" />

希望の効果が得られますが、リンクとして表示されなくなります。onclickページ上の何も変更したりスクロールバーを移動したりせずに、イベントにjavascriptハンドラーを割り当てることができるように、空のアンカーを指定する方法はありますか?

4

11 に答える 11

79

「return false;」を入れてください。2番目のオプション:

<a href="" onclick="jquery_stuff; return false;" />
于 2009-01-29T20:09:50.077 に答える
24

あなたは以下のように簡単に置くことができます:

<a href="javascript:;" onclick="jquery_stuff">
于 2009-01-31T06:03:44.543 に答える
24

return false;の後にする必要がありますjquery_stuff

<a href="no-javascript.html" onclick="jquery_stuff(); return false;" />

これにより、デフォルトのアクションがキャンセルされます。

于 2009-01-29T20:09:52.793 に答える
19

jQueryには、これを呼び出すための関数が組み込まれています。これは、http preventDefault: //api.jquery.com/event.preventDefault/にあります。

これが彼らの例です:

<script>
$("a").click(function(event) {
    event.preventDefault();
});
</script>

次のようにリンクを作成することもできます。

<a href="javascript:void(0)" onclick="myJsFunc();">Link</a>
于 2012-04-28T14:48:25.603 に答える
6

まぶたのコメントを確認してください(アンカーではなくボタンを使用してください)。同じアドバイスを投稿しようとしていました。リソースにリンクせず、スクリプトを実行するだけのアンカーは、ボタンとして実装する必要があります。

イベント ハンドラーを HTML に配置するのをやめ、アンカー セマンティックの目的を果たさないアンカー タグの使用をやめます。ボタンを使用して、Javascript にクリック ハンドラーを追加します。例: HTML<button id="jquery_stuff">Label</button>および JavaScript $('#jquery_stuff').click(jquery_stuff);。CSS を使用して、パディング、ボーダー、マージン、背景色を削除し、リンク スタイル (色やテキスト装飾など) を追加することで、ボタンをリンクのようにスタイル設定できます。— まぶたのない

于 2011-04-05T13:57:03.097 に答える
4
<a href="javascript:;" onclick="jquery">link</a>

hrefhtmlのバリデーターでエラーが表示されないようにするには、そこに何かが必要です。javascript:;良いプレースホルダーです。

あなたが本当に使用したい場合#

<a href="#me" name="me" onclick="jquery">link</a>

に注意してくださいreturn false;。これにより、実行しているすべてのデフォルトの動作が停止します。

また、jsが送信のようなものである場合、InternetExplorerで問題が発生する可能性があります。

于 2009-01-29T22:09:43.957 に答える
0
<a href="javascript:// some helpful comment " onclick="jquery_stuff" />
于 2009-01-29T20:09:50.873 に答える
-1

私は通常、<span>このようなことを達成する必要があるときに、を使用してリンクのようにスタイルを設定します。

于 2009-02-01T05:18:57.050 に答える
-1
  <a href="#" class="falseLinks">Link1</a>
  <a href="#" class="falseLinks">Link2</a>

等..

Jクエリ:

  $(function() {
    $("a.falseLinks").click(function() {
      // ...other stuff you want to do when links is clicked

      // This is the same as putting onclick="return false;" in HTML
     return false;
    })
  });

@eyelidlessness は、彼の言い方が少しダサかったですが、彼は正しかったです。これが最もクリーンな方法です。jQuery のほうが簡単でクリーンな機能を得るためにバニラ Javascript に戻るつもりなら、なぜ jQuery を使用するのでしょうか。

于 2013-09-09T13:28:32.853 に答える
-2

通常、私は:

<a style="cursor:pointer;" onclick="whatever();">Whatever</a>
于 2010-10-19T17:36:14.450 に答える
-4

要素とプレーンな JavaScript を使用<button>して、目的を達成します。ただし、主張する場合は、受け入れられた回答の代替アプローチを次に示します。

<a href="#nowhere" onclick="console.log('Hello, world!');">This link goes nowhere because the target doesn't exist.</a>

于 2011-12-24T15:51:22.423 に答える