2017-02-22 35 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