1

私のバックボーン アプリには、空白のルート ルートがあります。一部のビューには、ビューのオブジェクト<a>に登録した UI 要素のタグがあります。eventsマークアップを適切に形成するにはhref='#'、これらのアンカーを含める必要がありますが、アプリのルートに移動させたくありません。

<a>ルートに行きたくないすべての s について、常に を呼び出さなければならないようevt.preventDefault()です。これを確認し、他の/より良いオプションが利用可能かどうかを確認したいと思います.

<div>or<span>を使用できることはわかってcursor: pointerいますが、これらを意味的にアンカーにしたいという直感が働いています。

4

2 に答える 2

0

最近、既存のプロジェクトでこれを行う必要があったため、選択した回答に条件付きの代替案を提供したいと思います...問題のプロジェクトの複雑さに応じて、私の意見ではより効率的な別のオプションがあります.

非常に単純に:

  • 該当するすべてのリンクをターゲットにできるようにします。

    例:class="no-link"関連するすべての<a>要素に追加します。

  • 適切な CSS セレクターをターゲットにして、一般的なリンク機能を無効にします。

    例:一致する要素に通常のe.preventDefault()オーバーライドを適用する$('a[href="#"].no-link')

JS ビンの例。

とはいえ、ほとんどの場合、シンプルなほど良い..ページ上の多数のリンクにカスタム クラスを追加する必要がない場合は、追加しないでください。:) また、これを使用するときは十分に注意してください。具体的な jQuery セレクターが不十分であると、予期しないときに一部のリンクが無効になる可能性があります。

于 2014-01-18T12:01:35.270 に答える