javascript - JS点击两次后不显示文字

标签 javascript php jquery

我有这个 JS 代码,它可以对我网站上的某些文章进行“喜欢”和“不同”操作。问题是当我点击 Like 时,Unlike 按钮显示正常,但是当我点击 Unlike 时,它​​不会再次显示 Like。在我再次单击“不同”后,它只是粘贴“不同”文本而不是显示“喜欢”。刷新页面后它再次工作。

点击两次后没有显示文本,但它仍然执行SQL方法。

我的 JS 代码

$(function(){ 
    $('.like').click(function(){
        var article = $(this).attr("id");
        var data = 'cid='+article;
        $('.like').html('Unlike');
        $('.like').removeClass('like');
        $('.unlike').addClass('unlike');
        $.ajax({
            type: 'POST',
            url: 'includes/like.php', 
            data: data,
            success: function(result){

            }
        });
    });

    $('.unlike').click(function(){
        var article = $(this).attr("id");
        var data = 'cid='+article;
        $('.unlike').html('Like');
        $('.unlike').removeClass('unlike');
        $('.like').addClass('like');
        $.ajax({
            type: 'POST',
            url: 'includes/like.php', 
            data: data,
            success: function(result){

           }
        });
    });
});

最佳答案

嗨 Youssef 你可以试试这个

“喜欢”

$(function() {

    $('.like-button').click(function(){
        var obj = $(this);
        if( obj.data('liked') ){
            obj.data('liked', false);
            obj.html('Like');
        }
        else{
            obj.data('liked', true);
            obj.html('Unlike');
        }
    });
});

这段代码很有魅力
完整代码

$(function() {

  $('.like').click(function(){
            article  = this.id,
            data     = {cid : article};
$.ajax({
            type: 'POST',
            url: 'includes/like.php',
            data: data,
            success: function (result) {
              $('.total_likes').html(result);
            }
        });
      var obj = $(this);
      if( obj.data('liked') ){
          obj.data('liked', false);
          obj.html('Like');
      }
      else{
          obj.data('liked', true);
          obj.html('Unlike');
      }

  });
});


$(function() {

  $('.removelike').click(function(){
            article  = this.id,
            data     = {cid : article};
$.ajax({
            type: 'POST',
            url: 'includes/like.php',
            data: data,
            success: function (result) {
              $('.total_likes').html(result);
            }
        });
      var obj = $(this);
      if( obj.data('unliked') ){
          obj.data('unliked', false);
          obj.html('UnLike');
      }
      else{
          obj.data('unliked', true);
          obj.html('Like');
      }

  });
});

关于javascript - JS点击两次后不显示文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20936432/

相关文章:

jquery - 如何在jquery中获取只有月份和年份的月份差异

javascript - Twitter bootstrap - 单击时关注模式内的文本区域

Javascript - 将语言环境日期时间解析为我们的日期时间格式

Javascript 值不适用于输入文本框

PHP SQL Server 2008 错误定位服务器/实例指定 [xFFFFFFFF]

javascript - Font Awesome 5 图标的类绑定(bind)更改不影响图标

php - Nginx 重写或内部重定向循环,同时内部重定向到 "/index.html"

php - 秒更新sql数据的最佳方式

javascript - 如何将 oData 中的日期转换为 JavaScript 中的日期?

javascript - 使用 jquery 将 html 对象转换为字符串失败