使用jQuery + PHP的Ajax不起作用

时间:2013-10-24 00:20:56

标签: javascript jquery ajax

我通过服务器端(PHP)和HTML文件(脚本中的脚本src = blabla ...,以及div id =“在...中评价...”。

功能“peticion”有效,但在触发功能之后,“喜欢”或“不喜欢”不起作用,我看不到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); 
});

功能“peticion”有效,但在触发功能之后,“喜欢”或“不喜欢”功能不起作用,我在浏览器中看不到任何变化。

3 个答案:

答案 0 :(得分:0)

获取脚本的数据值

$('#rate').attr('data-id');

使用attr方法在jquery

中获取任何用户的任何属性值

答案 1 :(得分:0)

这是因为您的事件处理程序

$('#rate').click(peticion); 
替换html代码后

被破坏

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

尝试

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

或在每个html()

之后重复click()绑定
$('#rated').html(rHtml);
$('#rate').click(peticion);

答案 2 :(得分:0)

尝试更改它,因为您使用的是jquery 1.10:

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

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

jquery post documentation

  
    

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 on documentation