0

少し問題が発生しているようで、何のためにかなり混乱しています..

コード:

$(".post-click").click(function()
{
    var classid = $(this).attr('id');
    var postid = $(this).attr('id');
    postid = postid.replace('post-click-id_', '');

    alert("ID: " + classid + " PostID: " + postid);

    $(this).replaceWith('<img SRC="assets/img/refresh.gif" ALT="" id="' + classid + '">');

    $.post("likepost.php", { postid: postid } , function(data)
    {
        $(document).foundationTooltips();

        alert(data);
            $("#" + classid).replaceWith(data);

            var classes = $("#" + classid).attr('class');

            alert(classes);
    });
});

クリックすると、クリックした ID のテキストが置き換えられます。今、私はこれを手に入れました:

$(".post-click").click(function()
{

交換後、ポストクリックが呼び出されないようです。それを適切なクラスに置き換えたことを確認するために、「var classes = ...」をそこに置きました。クラスのポストクリックが置換されていることを警告します。

置き換えは: < a class="post-click" href="#" >test< /a >";

jQueryがポストクリックをもう呼び出さない理由はありますか?

4

1 に答える 1

2

を使用する場合replaceWith、DOM 要素を置き換えて、そのイベント バインディングを完成させます。

幸いなことに、jQuery は、.on(イベントを再バインドする新しいコンテンツをループするのではなく) イベント委任を使用できるようにします。

ポストクリックの親ノードに適用し、引数でクラスを指定します。

例えば

$(".some-parent-elem").on("click", ".post-click", 
       function (){...do stuff on click...});

これがどのように機能するかというと、.some-parent-elem のクリックをリッスンし (イベントのバブリングにより、その要素の子をクリックすると起動することを意味します)、クリックされた元のターゲット要素のクラスがクリック後、関数を実行します。

于 2012-10-23T10:01:35.510 に答える