6
4

10 に答える 10

9

実行されていない JavaScript アクションへの論理的なフォールバックとして機能するページ上のフラグメントを参照できますか? もしそうなら、フォールバックとして機能する可能性のある を参照してページに<a href="#account">置くことは非常に理にかなっています。id="account"

もう 1 つのオプションは、動的に読み込まれたコンテンツを直接参照することです。hrefそうすれば、JavaScript で何を要求するかを何らかの方法でハードコーディングする代わりに、Ajax 呼び出しで を非常に便利に使用できます。<a href="/path/to/dynamic/content">.

最後に、HTML に静的に含めることはまったくできませんが、<a href="#">とにかく jQuery でのみ使用されるため、jQuery を使用してオンザフライで作成します。とにかく、プレースホルダーが JavaScript によってのみ使用される場合は、JavaScript のプレースホルダーでマークアップを汚染する必要はありません。

「ユーザーをページのトップに送る」について; ハンドラーreturn falseとしてフックした関数からだけする必要があります。click()

$('a').click(function() {
    // Do your stuff.
    // The below line prevents the 'href' on the anchor to be followed.
    return false;
});
于 2010-11-19T12:29:09.183 に答える
5

<button>JS のみのアクションには要素を使用する必要があります。デフォルトのアクション (フォーム内の場合) がありますが、フォームの外では、JS イベント ハンドラーをバインドするユーザー トリガー アクション専用です。

于 2010-11-19T12:39:57.817 に答える
2

リンクではないリンクがある場合、おそらくそれらはリンクであってはなりませんか? :-) デフォルトの動作 (フォーム外) を持たない別の UI 要素を検討することbuttonもできます (ボタンのスタイルをかなりの程度まで設定できます)。または、または同様のものを使用することもできますがspan、適切なアクセシビリティ情報 ( ARIA などrole="link") を設定して、スクリーン リーダー (およびブラウザーのタブ移動) を台無しにしないようにしてください。

ただし、 を引き続き使用する場合は<a href="#">...</a>、 を呼び出すevent.preventDefault();か返すハンドラーをそれらにアタッチするだけfalseです。

于 2010-11-19T12:34:54.313 に答える
1

アンカーがjavascriptを持っていない人にとって役に立たない場合、彼らはそれをまったく見るべきではありません。

最良の代替策は、ページの読み込み時にjQueryを使用してこれらのリンクを生成することです。そうすれば、それらを表示するのは、それらを使用する人だけです。

この場合、href="#"イベントハンドラーがで終了する限り、が続くことはないため、持っていても問題return false;ありhrefません。

于 2010-11-19T12:35:05.620 に答える
1

#結構です。しかし、トリガーされるコールバックはreturn false.

   // assigning a click callback to all anchors
   $('a').click(function(evt){
       //... do stuff
       return false; // avoid jump to '#'
   })
于 2010-11-19T12:28:34.700 に答える
1

私は使用することを好みます:

<a href="javascript:">foo</a>

実際に部分テンプレートをロードするための ajax 呼び出しでない限り、その場合は次のようなものを使用します。

<a href="/link/to/page" onClick="ajax_request_to_partial(); return false;">foo</a>

onclick イベントで false を返すことにより、サイトが再読み込みされないようにしますが、新しいページで URL を開くために引き続き使用できます。

于 2010-11-19T12:28:45.583 に答える
0
return false;

これを使用して、ブラウザがページのトップに送信するのを停止しますか?

于 2010-11-19T12:28:29.130 に答える
0

クリック時に何らかのアクションをバインドする場合、 preventDefault() を呼び出して、ユーザーがページの上部に送信されないようにすることができます

$("a.clickable").live('click',function(){$(this).doSome(); $(this).preventDefault()});
于 2010-11-19T12:29:18.727 に答える