我正在尝试更新按钮以显示书签数量。我的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,反之亦然,其他人将保持相同的计数。但是,这些点击仍会影响数据库,我可以看到正在创建和删除的书签。
答案 0 :(得分:2)
您正在分配值1而不是进行比较。因此,该值始终为1。
if(json.count = 1){
应该是
if(json.count == 1){