0

メソッドを使用しようとしていますが、live最初は意図したとおりに機能しますが、その後の関数の実行で ajax の「成功」コールバックが正しく機能しません。

$(function () {
    $('.vote').live('click', function () {
        url = '".base_url()."post/vote';
        post_id = $(this).attr('id');

        $.ajax({
            url: url,
            type: 'POST',
            data: 'post_id=' + post_id,
            success: function (msg) {
                post = $('.num_vote' + post_id);
                vote = $('.votes' + post_id);
                $(vote).html(msg); // working only the first time
            }
        });
        return false;
    });
});
4

1 に答える 1

0

使用している jQuery のバージョンによっては、 .on関数を使用する必要がある場合があります。これは、.live()が 1.7 で廃止され、1.9 で削除されたためです。

$(function(){
    $('.vote').on( 'click', function() {
            url = '".base_url()."post/vote';
            post_id = $(this).attr('id');
            $.ajax({
                    url: url,
                    type: 'POST',
                    data: 'post_id=' + post_id,
                    success: function(msg) {                            
                        post = $('.num_vote' + post_id);
                        vote = $('.votes' + post_id);
                            $(vote).html(msg); // working only the first time

                    }
            });
            return false;
    });
});
于 2013-07-31T22:16:45.153 に答える