46

私の Web サイトでは、jQuery を使用して要素のイベント、つまりハイパーリンクをフックしています。これらのハイパーリンクは現在のページでのみアクションを実行し、どこにも導かないため、「#」の href 属性を次の場所に配置しました。

<a href="#">My Link</a>

ただし、一部のブラウザーでは、これによりページが右から上にスクロールされますが、これは明らかに望ましくない動作です。空の href 値を使用するか、href 値を含めないようにしましたが、ホバリング時にマウスがハンド カーソルに変わりません。

そこに何を入れればいいですか?

4

12 に答える 12

51
$('a').click(function (event) 
{ 
     event.preventDefault(); 
     //here you can also do all sort of things 
});

次に、必要hrefなものをすべて入力すると、jQuery がpreventDefault()メソッドをトリガーし、その場所にリダイレクトされなくなります。

于 2009-04-06T11:18:13.197 に答える
39

クリック イベントを提供するためだけに存在するが、実際には他のコンテンツにリンクしない「アンカー」は、実際にはボタン要素であるべきです。

次のようにスタイリングできます。

<button style="border:none; background:transparent; cursor: pointer;">Click me</button>

そしてもちろん、ブラウザがトップにジャンプすることを心配することなく、また onclick="return false;" などの不要な JavaScript を追加することなく、クリック イベントをボタンにアタッチすることができます。または event.preventDefault() 。

于 2010-01-27T05:36:29.123 に答える
37

そこに本当のリンクを入れる必要があります。私は衒学者のように聞こえたくありませんが、それはかなり悪い習慣です。JQuery と Ajax は、常に最後に実装する必要があります。どこにも行かないリンクがある場合、それは正しく行われていません。

私はあなたのボールを壊しているわけではありません。つまり、最善の意図を持って.

于 2009-04-06T11:13:08.840 に答える
11

なぜ使用するの<a href>ですか?私はそれを次のように解決します:

<span class='a'>fake link</span>

そしてそれを次のようにスタイリングします:

.a {text-decoration:underline; cursor:pointer;}

jQueryを使用して簡単にアクセスできます。

$(".a").click();

于 2009-04-06T12:28:13.637 に答える
9

クリック ハンドラーの最後に return false を追加します。これにより、ページをリダイレクトしようとするブラウザーのデフォルト ハンドラーが発生しなくなります。

$('a').click(function() {
// do stuff
return false;
});
于 2009-04-06T11:05:30.840 に答える
5

<a href="javascript:void(0)" ></a> 代わりに使用する必要があります<a href="#" ></a>

于 2010-01-19T07:05:36.610 に答える
5

jqueryを使用すると、「#」が付いているものだけを取得したい場合があります

$('a[href=#]').click(function(){return false;});

最新の jquery (1.3.x) を使用する場合、ページが変更されたときに再度バインドする必要はありません。

$('a[href=#]').live('click', function(){return false;});
于 2009-07-20T17:23:45.567 に答える
4

<a href="#">ドキュメントの位置が一番上にスクロールしないようにするには、<a href="#/">代わりに単純に使用します。これは単なる HTML であり、JQuery は必要ありません。使いevent.preventDefault();すぎです!

于 2011-12-07T01:56:40.303 に答える
1

私はこれが古いことを知っていますが、すごい、そのような簡単な解決策があります。

「href」を完全に削除し、次のことを行うクラスを追加するだけです。

.no-href { cursor:pointer: }

以上です!

于 2010-04-09T11:20:48.607 に答える
-1
<a href="#nogo">My Link</a>
于 2010-10-31T00:42:10.937 に答える
-1

代わりに、次のような href を使用できます。

<a href="javascript:;">My Link</a>

一番上までスクロールしません。

于 2010-10-19T07:34:14.370 に答える