0

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

1 回答 1

2

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

 success: setCookieAndUpdateButton,
 error: setCookieAndUpdateButton

没有()在他们两个

于 2013-06-11T16:55:33.073 回答