图片描述
点击上面 就加1,绝不会多加2 。因为在只有加1。
点击下面的 就减1,绝不会因为再次点击就减2.因为在sg只能减1.
请问jquery 怎么写出来的。
跟商城购物车效果是不一样的。
$(".vote-up-off").click(function(){
// 组件之间必须是独立的
var n=$(this).parent().find(".vote-count-post").text();
var num=parseInt(n)+1;
if(num==0){alert("cc");}
$(this).parent().find(".vote-count-post").text(num);
});
$(".vote-down-off").click(function(){
var n=$(this).parent().find('.vote-count-post').text();
var num=parseInt(n)-1;
$(this).parent().find('.vote-count-post').text(num);
});
<div class="vote">
<input type="hidden" name="_id_" value="35062708">
<a class="vote-up-off" title=""></a>
<span class="vote-count-post ">1</span>
<a class="vote-down-off" title=""></a>
<div class="favoritecount"><b></b></div>
</div>
我的原话: 假设这网站只允许 用户赞一个 并+1, 最多单击一次,单击完成就把原本的1 加为2 . 绝不超过3. 请问 ,点击完成之后 怎么避免用户再次点击 保持 2的数字?
php高手对我说: JS本身虽然可以计数,但判断不了用户点了几次,即使用JS控制不超过2,那刷新之后,还是还原了,所以必须要判断到数据库。
难道还有没有别的方法吗?
前端的话,等于1的时候,如果点击增加,那么就禁用这个点击。等于2的时候,如果点击减少,然后移除增加那个点击的disabled或者readolny属性,让增加点击恢复点击功能。如果需要后端返回数据处理,那么把当前点了几个赞,用ajax发送给后台,后台会给你返回状态码,比如0代表可以继续点击,1代表不允许点击,那么你就用if判断,禁用增加点击,或者移除禁用。
对于每个用户,如果点过了就不能再点。就这么简单
1 点击后通过啊那些判断,没点过的返回个true 或false,然后动态变化数字
2 把返回的结果做个localstorage什么的本地存储,方便下次前端判断,避免多次请求后端
肯定要发请求给后端的, 后端就可以很简单的判断这条记录这个用户是否赞过了,可以返回给你一个true,false值让前端去判断加还是不加
如果你只在前端做控制,这个用户点了一次赞 +1, 那另外一个用户访问这条记录的时候怎么会显示 已经有了一个赞了呢。 需要从后端数据库去读取