增加一个元素';通过JavaScript实现的s值

增加一个元素';通过JavaScript实现的s值,javascript,Javascript,我的网站上有一个类似的系统;当有人点击like按钮时,我希望like的数量动态增加1 为此,;我使用了一个Ajax调用,效果很好。 一旦Ajax调用结束,我希望它将元素值增加1: $(document).ready(function(){ $('.likebutton').on('click', function() { var a = $(this).attr('name'); var b = a.slice(4, 99);

我的网站上有一个类似的系统;当有人点击like按钮时,我希望like的数量动态增加1

为此,;我使用了一个Ajax调用,效果很好。 一旦Ajax调用结束,我希望它将元素值增加1:

$(document).ready(function(){
  $('.likebutton').on('click', function() {     
    var a = $(this).attr('name');           
    var b = a.slice(4, 99);                 
    var c = "opim" + b;
    var d = 1;
    $.post('like.php', {i: b}, function(data) {
      $('.likebutton[name=' + a +']').replaceWith( "<i name=\"like$i\" class=\"fa fa-heart likebuttono thisi3\" style=\"color:red\"></i></br>Aimé!" );  
      document.getElementById(c).innerHTML = parseInt(document.getElementById(c).innerHTML,10) + d;
    });
  });
});
$(文档).ready(函数(){
$('.likebutton')。在('click',function(){
var a=$(this.attr('name');
VarB=a.slice(4,99);
var c=“opim”+b;
var d=1;
$.post('like.php',{i:b},函数(数据){
$('.likebutton[name='+a+']')。替换为(“
Aimé!”); document.getElementById(c).innerHTML=parseInt(document.getElementById(c).innerHTML,10)+d; }); }); });
这是有效的;但有时,不是加1,而是加2或3到喜欢的数量


有人能解释一下它为什么会这样做以及如何解决这个问题吗?

我建议您利用数据属性

因为我不知道您的HTML代码,所以我建议您使用以下代码来停止单击多个

$(函数(){
$('likebutton')。在('click',函数(e)上{
//获取AlreadyClicked数据属性
var aClicked=$(this.data('AlreadyClicked');
//如果尚未定义,请停止
如果(aClicked!==未定义){
警报('已单击!');
e、 预防默认值();
返回;
}
//定义它
$(this).data('AlreadyClicked',true);
var a=$(this.attr('name');
VarB=a.slice(4,99);
var c=“opim”+b;
var d=1;
$.post('like.php',{i:b},函数(数据){
$('.likebutton[name='+a+']')。替换为(“
Aimé!”); document.getElementById(c).innerHTML=parseInt(document.getElementById(c).innerHTML,10)+d; }); }); });


我喜欢
你需要发布更多的代码,因为这行代码添加的代码不会超过
1
。唯一的原因是代码位执行了2到3次,可能是人们双击(或三次单击?)Like按钮。我建议您在单击一次时禁用该按钮。因此,如果有人快速单击三次,您将分别发布三篇文章,每篇文章都会增加计数器。@Pointy No,只需单击一次,它就会随机添加1、2、3甚至4。