javascript - ajax 第一次点击时不会更新

标签 javascript jquery ajax cookies

我的代码有问题,它是一个“赞”按钮。它显示了喜欢的数量。如果用户还没有投票(cookie),他可以点击并计数器增加。问题是计数器在第一次点击时不会更新(如果我停用 cookie 检查并投票几次),下次刷新时一切都会更新。似乎在插入后端之前发生了一些计数。我想probem是在JavaScript中,ajax post跨域工作但给出错误,这就是为什么“错误:setCookieAndUpdateButton()”

这是我的前端代码:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>


<div><a id="like_button" href="#">Like</a></div>
<script>
var url = "http://thumbs-up.some-server.com/";
var appName = "next_test";

document.write("<script src=\"" + url + "jquery.cookie.js\"><\/script>");
$(document).ready(function(){
  updateButton();
  $("#like_button").click(function(){
      if ($.cookie(appName + "_voted") == "true") {return;}
      $.ajax({
          type: "POST",
          dataType: "json",
          crossDomain: true,
          url: url + "increase_counter.php",
          data: {referrer: appName},
          success: setCookieAndUpdateButton(),
          error: setCookieAndUpdateButton()
      });
  });
});
function setCookieAndUpdateButton()
{
    updateButton();
    $.cookie(appName + "_voted", "true", {expires: 20*365});
}
function updateButton()
{
    $.ajax({
        type: "GET",
        async: false,
        contentType: "application/json",
        dataType: "jsonp",
        jsonpCallback: 'callback4jquery',
        url: url + "get_counter_for_referrer.php",
        data: {referrer: appName},
        success: function (json) {
          if ($.cookie(appName + "_voted") != "true"){
            $("#like_button").html("<a id=\"like_button\" href=\"#\"><img src=\"" + url + "like.png\">Good to know " + json.count + "x</a>")
          }
          else{
            $("#like_button").html("<span id=\"like_button\"><img src=\"" + url + "like.png\">Good to know "  + json.count + "x</span>");
            $('#like_button').unbind('click');
          }
        }
    });
}
</script>

最佳答案

在第一个ajax调用中更改您的代码,如下所示:

 success: setCookieAndUpdateButton,
 error: setCookieAndUpdateButton

两者都没有()

关于javascript - ajax 第一次点击时不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17049457/

相关文章:

javascript - 将回调函数传递给 jQuery AJAX 成功函数

JavaScript for 循环与 jquery 不起作用

javascript - 动态angularjs模板

javascript - 写入服务器上的 XML 文件

javascript - 将 CSS 应用于焦点上的输入容器

jquery - 使用 jQuery 使连续的第一张图片消失

jquery - CSS 图像滚动贴图和 jQuery : how to use a second li list?

javascript - jQuery 参数序列化,没有括号困惑

javascript - 从网页打印特定图像而不弹出窗口或新窗口?

javascript - 我怎样才能在 Magento 中修改这个价格函数