1

我传递了服务器端(PHP)和 HTML 文件(脚本 src=blabla... 在头部,div id="rated... 在正文中)。

功能“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”有效,但在触发功能后,“喜欢”或“不喜欢”功能不起作用,我在浏览器中看不到任何变化。

4

3 回答 3

0

获取脚本的数据值

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

使用 attr 方法在 jquery 中获取任何用户的任何属性值

于 2013-10-24T00:42:56.680 回答
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 回答
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 回答