0

次のコードは、発火と警告以外のリンクをクリックしたときに何も起こらないようにするためのものです。リンク先はキャンセルされますが、リンクをクリックするとページの上部までスクロールします。どうすればこの動作を停止できますか? ありがとう

$('a#target').click(function(event){
    event.preventDefault();
    alert('End of demo');
});

私のリンクを更新すると、次のようになります。

<a href="#">Submit</a>
4

2 に答える 2

1

いいえ、 preventDefault は何も停止することは想定されていません。デフォルトのアクションを防止するということを正確に実行することになっています。つまり、href を含むリンクをクリックすると、そのリンクに移動するというブラウザのデフォルト アクションが妨げられます。

そのリンクに関連付けられている他のすべてのイベントを停止する場合は、イベント ハンドラーの最後で false を返し、そのイベント ハンドラーが他のイベントよりも先に実行されるようにする必要があります。

アップデート:

リンクと href 値を投稿していただきありがとうございます。クリック ハンドラーが起動される前に、JavaScript でエラーが発生していると思います。この回答の最初のコメントが正しく示しているように、 preventDefault はリンクがページ内のアンカーにジャンプするのも防ぐ必要があります。そうでない場合は、ページの他の場所で JavaScript エラーが発生している可能性があります。

以上のことから、正しい HTML を投稿したことは確かですか?

$('a#target').click(...

次のようなリンクにクリック ハンドラを添付します。

<a href="#" id="target">Submit</a>

最後に、アンカー要素に JavaScript を介してアタッチされたアクションしかない場合、なぜ option href 属性を指定する必要があるのでしょうか?

于 2012-05-21T16:12:37.353 に答える