1

したがって、jQueryの「.on」関数と動的に作成された要素でいくつかの厄介な結果が生じています。使用しているコードは次のとおりです。

これは、実行時にランダムな関数で呼び出されます。

$(".activity-feed").append('<div class="feed-story big-feed-story feed-story-comment multiline-feed-story">\
        <div class="photo-view inbox-size photo-view-rounded-corners">\
            <div class="comment-icon">\
            </div>\
        </div>\
        <div class="comment-content">\
            <div class="delete ucomment-delete click-target" id="ucomment-'+uqid+'" tabindex="-1" style="outline:none;"></div>\
            <span class="feed-story-creator"><a href="/user/'+uid+'/'+username+'">'+username+'</a>&nbsp;</span>\
                <span class="comment-text">\
                    <span>\
                        <span style="white-space: pre-wrap;">'+$(".comment-box").html()+'</span>\
                    </span>\
                </span>\
            <div>\
                <span class="feed-story-footer"><span class="story-timestamp-view">'+time+'</span></span>\
            </div>\
        </div>\
    </div>');

そして、この関数はコメントの削除を許可する必要があります(ドキュメントの準備ができた後ではなく、ページの下部で定義されています)

$(".delete").on("click", function() {
    alert('test....');
});

ただし、「ucomment-delete」ボタンをクリックしても何も起こりません:(しかし、ロード時にそこにあったコメントをクリックすると機能します
。なぜですか?何が間違っているのですか?

4

4 に答える 4

1

ページに既に存在する要素にバインドする必要があり、ページにまだ存在しない可能性のある要素のセレクターを指定できます。

$(".activity-feed").on("click",".delete", function() {
    alert('test....');
});

例については、このフィドルを参照してください。

http://jsfiddle.net/G4MGZ/

于 2013-07-26T04:23:32.500 に答える
0

ファイルの最後にある場合でも、.on()HAS は でラップする必要があります。document.ready()そして、@John Koemer の言うことも真実だと思います。

于 2013-07-26T04:38:11.010 に答える