2017-02-22 30 views
1

我的onClick功能不触发,当我手动触发它通过控制台,我得到的错误:未捕获的SyntaxError:意外的数onClick()未触发+意外数字?

<div style="width:50%;float:left;padding:5px;" class="btn btn-default"> 
<center><b><i class="fa fa-thumbs-o-up" aria-hidden="true" onClick="like_post(<?php echo $PinnedObj->ID;?>,<?php echo $client->ID;?>)""></i> 

的JS功能:

script type="text/javascript" > 
function like_post(PID, UID){ 
    $.ajax({ 
    url: "like.php", 
    type: "POST", 
    data: {'PID': PID, 'UID': UID, 'liked': '1'},     
    }); 

    document.getElementById("like_button"+PID).value = parseInt(document.getElementById("like_button"+PID).value,10) + 1; 

} 

</script> 
+0

你能发布这类正在PHP调用后呈现的HTML? – motanelu

+0

HTML是PHP的调用之后,PHP脚本只会更新DB值。 – Mazux2

+0

张贴的JS代码段不包含任何语法错误? – Teemu

回答

0

你问题在于你使用了没有它的元素的“值”。 “价值”仅在元素中呈现。您必须使用元素的“文本”来更新它。

第二个问题是,你总结你的元素的空文本与1 parseInt函数的不确定(你的情况)给出NaN的结果和“1”给“南”。

function like_post(pid, uid) { 
    var $btn = $('#like_button'+pid); 
    $.post("like.php", {"PID": pid, "UID": uid, "liked": "1"}, function(r) { 
     $btn.text(parseInt($(btn).text()||0)+1); 
    }); 
} 

已更新。但漂亮是,如果“like.php”将返回喜欢

function like_post(pid, uid) { 
    var $btn = $('#like_button'+pid); 
    $.post("like.php", {"PID": pid, "UID": uid, "liked": "1"}, function(r) { 
     $btn.text(r); 
    }); 
} 
+0

刚刚更新。对于每一个变种。点击输入时 –

+0

与数字错误并没有什么相同的问题发生。 – Mazux2

+0

请提供完整的HTML代码。我可以”难以想象这里发生了什么,而且提供JS例外。 –

0

您正在使用jQuery与阿贾克斯的号码,这样你就可以像这样的加法计数器功能扩展jQuery的。

jQuery.fn.extend({ 
    add: function() { 
    return this.each(function() { 
     var element = $(this); 
     if (element .is("input")) { 
      element.val(parseInt((element.val() || 0)) + 1) 
     } 

     if (element .is("button")) { 
     element .text(parseInt((element.text() || 0)) + 1) 
     } 

    }); 
    } 
}); 

,你只可以使用作为

var $btn = $('#like_button'+pid); 
$btn.add(); 

检查:https://plnkr.co/edit/gist:1986619?p=preview