0

リンク ID lmorがクリックされたときにhref 要素data-postsからコンテンツを取得する div (#replyLoop) があります。最初のクリックでは問題なく動作しますが、その後は何もしません。使用されているイベントではなく、コードの構造に関係していると思われます。「ライブ」と「クリック」の両方で同じ結果が得られ、削除すると false が返されます。リンクの data-posts 要素のみを使用し、href 部分を削除します。(false を返します。リンクの href の起動を無効にします)。

js に関しては、私はいつも最も明白なことを見落としているようです。

(tooltip-e は、新しいコンテンツが読み込まれるたびに、ほろ酔い関数が呼び出されるようにします。(ツールヒント))

「ライブ」マークアップ -

$(function(){
$("#lmor").live("click",function() {
    $('#replyLoop').load($(this).attr('data-posts'), function(data) {
            $('.tooltip-e').tipsy({
            gravity: 'e',
            fade: true,
            html: true
            });
        });
        return false;
    });
});

「クリック」マークアップ-

$(function(){
$("#lmor").click(function() {
    $('#replyLoop').load($(this).attr('data-posts'), function(data) {
            $('.tooltip-e').tipsy({
            gravity: 'e',
            fade: true,
            html: true
            });
        });
    return false;
    });
});

私が見逃しているものについてのアイデアはありますか?

編集 私はそれを理解しました-.liveの組み合わせを使用し、適切なファイルに「さらに読み込む」を含めると、機能するようになりました。

問題: ロード中のページの外で呼び出されていたため、「次の」ページを探していたときに、その「次の」ページがまだリンクにプッシュされていなかった。読み込まれました。

また、"s の代わりに を使用するようにライブ コードをマークアップしました。ご協力ありがとうございます。

4

1 に答える 1

1

推測する必要がなければ答えるのは簡単ですが、ここに私の推測があります: #lmor は、最初にクリックされたときに #replyLoop にロードする html 内にありますか? 問題は $("#lmor").live が DOM 要素 #lmor に設定されていることです。次に、新しいコンテンツをロードするときに、その dom 要素を削除して新しい要素を作成します。それを行う方法は次のとおりです。

$(document).on("click", "#lmor", function...);

このようにして、新しい #lmor を作成すると (新しいコンテンツをロードするとき)、イベント リスナーも取得されます。

最適化されたバージョンは次のようになります。

$("#replyLoop").on("click", "#lmor", function...);

#lmor が #replyLoop 内にある場合

于 2012-06-17T20:17:57.540 に答える