1

サーバー側 (PHP) と HTML ファイル (先頭にスクリプト src=blabla...、本文に div id="rated...) を渡します。

関数「ペティシオン」は機能しますが、機能をトリガーした後、「好き」または「嫌い」は機能しません.htmlに変更はありません。

$(function(){


    function like(){
        var asinid = $('#rate').data('id');

        var rHtml = '<a href="#" id="rate" data-id="('+asinid+')" data-action="dislike">No te gusta</a>';


        $('#rated').html(rHtml);   
    }
        function dislike(){
        var asinid = $('#rate').data('id');

        var rHtml = '<a href="#" id="rate" data-id="('+asinid+')" data-action="like">Te gusta</a>';


        $('#rated').html(rHtml);   
    }


    function peticion(e){
        // Realizar la petición
        var parametros = {
            asinid: $('#rate').data('id')
        };


        if ($('#rate').data('action')=='like'){
        var post = $.post("../../likes/addlike.php", parametros, like, 'json');
        }
        else if($('#rate').data('action')=='dislike'){
        var post = $.post("../../likes/dellike.php", parametros, dislike, 'json');
        }

    }

    $('#rate').click(peticion); 
});

機能「ペティシオン」は機能しますが、機能をトリガーした後、「好き」または「嫌い」機能が機能しません。ブラウザーに変更はありません。

4

3 に答える 3

0

jquery 1.10 を使用しているため、少し変更してみてください。

var post = $.post("../../likes/addlike.php", parametros, 'json');

post.done(function( data ) {
    like();
  });

jquery投稿ドキュメント

jQuery 1.5 で導入された jqXHR.success()、jqXHR.error()、および jqXHR.complete() コールバック メソッドは、jQuery 1.8 で非推奨になりました。最終的な削除に備えてコードを準備するには、代わりに jqXHR.done()、jqXHR.fail()、および jqXHR.always() を使用してください。

また、.on動的に追加された要素に使用します。

$(document).on('click', '#rate', function(){
     peticion(); 
 });

ドキュメントのjquery

于 2013-10-24T01:47:01.087 に答える
0

それはあなたのイベントハンドラーのためです

$('#rate').click(peticion); 

htmlコードを置き換えた後に破棄されました

$('#rated').html(rHtml);

しようとする

$('#rate').live("click", peticion);

または、各 html() の後に click() バインディングを繰り返す

$('#rated').html(rHtml);
$('#rate').click(peticion);
于 2013-10-24T01:02:34.923 に答える