1

編集:

目標は、リンクをクリックしたときに画面がページの上部に移動しないようにすることです。短い説明を非表示にして完全な説明を表示したいだけです。

jQuery("#more_info a").live('click', function(event)
{
    event.preventDefault();
    jQuery('#food_desc').hide();
    jQuery('#food_desc_full').show();
});

上記のコードは、既定のイベント (ページの上部に移動) が発生しないようにする以外は機能します。live() イベントのせいですか?

編集:

私もこれを試しました:

if (data.body_summary)
{
    jQuery("#food_desc").append('<p id="more_info"><a href="#">MORE &raquo;</a></p>');
    jQuery("#more_info a").click(function(event)
    {
        event.preventDefault();
        jQuery('#food_desc').hide();
        jQuery('#food_desc_full').show();
        return false;
    });

}

それでもトップページへ…

私もこれを試しました:

jQuery("body").delegate("#more_info a", "click", function(event) 
{
    event.stopPropagation();
    event.preventDefault();
    jQuery('#food_desc').hide();
    jQuery('#food_desc_full').show();
    return false;
});

長い/短い説明の表示/非表示を行いますが、ページがトップに行くのを止めません。

4

4 に答える 4

0

あなたは両方とも役に立たないreturn false;ライブのためにデリゲートで行う必要がありますe.stopPropagation();

于 2014-02-21T18:36:54.353 に答える
0

ドキュメントから:

イベント ハンドラーでの呼び出しevent.stopPropagation()は、ドキュメントの下部にアタッチされたイベント ハンドラーを停止するのに効果的ではありません。イベントはすでにドキュメントに伝達されています。

.on()代わりに使用するか.delegate()、まだ 1.7+ を使用していない場合は使用する必要があります。

于 2012-07-23T14:45:36.127 に答える
0

のせいじゃない#href

于 2012-07-23T14:48:19.223 に答える
0

タグの onclick イベントで false を返す必要があります。この SO の質問event.preventDefault() vs. return falseを確認してください

于 2012-07-23T16:13:00.447 に答える