对于Ajax按钮调用,书签计数仅更新一次

时间:2018-05-23 14:49:12

标签: javascript jquery ajax

我正在尝试更新按钮以显示书签数量。我的HTML是:

<button data-id="1" data-type="listing" data-action="bookmark" id="bookmark-button" class="like-button"><span class="like-icon"></span> Bookmark this listing</button>
<span id="bookmark-count">1 people bookmarked this listing</span>

脚本是:

function to_bookmarks()
    {
        var current = $(this);
        var type = current.data('type');
        var pk = current.data('id');
        var action = current.data('action');
        var t = null
        var count = $('#bookmark-count');

        $.ajax({
            url : "/bookmarks/" + type + "/" + pk + "/",
            type : 'POST',
            data : { 'pk' : pk },

            success : function (json) {
                if(json.count = 1){
                    t = '1 person bookmarked this listing';
                } else {
                    t = json.count + ' people bookmarked this listing';
                }
                count.text(t);
            }
        });

        return false;
    }

$(function() {
    $('#bookmark-button').click(to_bookmarks);
});

我的json响应为{'result': True/False, 'count': 0/1 },具体取决于我是删除书签还是添加到服务器中(并且它是正确的)。

出于某种原因,我的浏览器只对第一次点击按钮做出反应,但没有后续点击(尽管数据库正确更新,但它不会反映在客户端)。

编辑:例如,如果我将按钮垃圾邮件100次,则只有第一次点击会将计数从1更改为0,反之亦然,其他人将保持相同的计数。但是,这些点击仍会影响数据库,我可以看到正在创建和删除的书签。

1 个答案:

答案 0 :(得分:2)

您正在分配值1而不是进行比较。因此,该值始终为1。

  

if(json.count = 1){

应该是

  

if(json.count == 1){