实际上我一直在努力制作'喜欢'点击时点击增加或减少计数的按钮,我面临的问题是,一个按钮对其他按钮的干扰。这是我的一个按钮的html代码:
<button class="btn btn-default buttonattr"style="font-family:Pangolin" onclick="myhit1(\''+this["post"]+'\',\''+this["id"]+'\',\''+this["love"]+'\');myclick()">
<span class="glyphicon glyphicon-heart fa-lg active1"></span> Love
</button>;
其中myhit()
和myclick()
是javascript函数,单击此按钮时调用。这是我的javascript函数:
var toAdd=1;var newValue=0;
var overall=1;var pvalue=0;
function myhit(post,id,love){
oldValue=parseInt(love);
if(toAdd>0){
newValue=oldValue+toAdd;
}
else{
newValue= overall + toAdd;
}
pvalue=pvalue+toAdd;
toAdd*=-1;
overall=newValue;
$.post('porthome4_.php',{post1:post,id1:id,love:newValue,plove:pvalue},function(info){});
}
我做了更多&#39;喜欢&#39;每个帖子的按钮。问题出在例如。如果我点击一个按钮,计数器从0-> 1状态增加,但如果点击另一个按钮,其状态变化是荒谬的,我知道原因是toAdd
变量状态从+1变为-1因为按钮上每次点击它的状态都会改变,如果只有一个按钮,它就可以正常工作了
对于多个按钮,这不会工作...有人可以建议我更好的方法来解决这个问题,或者我的功能代码的更改将更加受到重视。如果有人帮忙会很高兴。谢谢你。
答案 0 :(得分:2)
<button class="btn btn-default buttonattr"style="font-family:Pangolin" data-state="1" onclick="myhit1(\''+this["post"]+'\',\''+this["id"]+'\',\''+this["love"]+'\');myclick()">
<span class="glyphicon glyphicon-heart fa-lg active1"></span> Love
</button>
var newValue=0;
var overall=1;
var pvalue=0;
function myhit(post,id,love)
{
oldValue = parseInt(love);
var toAdd = parseInt($(this).attr("data-state"));
if(toAdd>0)
{
newValue=oldValue+toAdd;
}
else
{
newValue= overall + toAdd;
}
pvalue=pvalue+toAdd;
toAdd*=-1;
overall=newValue;
$(this).attr("data-state",toAdd);
$.post('porthome4_.php',{post1:post,id1:id,love:newValue,plove:pvalue},function(info){});
}
答案 1 :(得分:1)
您可以为每个按钮使用单独的状态变量。将data-state
属性设置为按钮,然后您可以使用此属性来运行$(this).data("data-state");
,您可以在每次单击按钮时获取并设置此值。