首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jquery的Django ajax 'like‘按钮?

使用Jquery的Django ajax 'like‘按钮?
EN

Stack Overflow用户
提问于 2011-05-28 04:10:27
回答 1查看 2.9K关注 0票数 1

我想实现一个ajax的‘喜欢’按钮,它应该增加喜欢计数,而不是刷新整个页面。我是ajax的新手,所以请帮助我。

urls.py:

代码语言:javascript
复制
(r'^like/(\d+)/$',like),

下面是我对like的视图代码:

代码语言:javascript
复制
def like(request,feedno):
  feed=Feed.objects.get(pk=feedno)
  t=request.META['REMOTE_ADDR']
  feed.add_vote(t,+1)
  vote, created = Vote.objects.get_or_create(

          feed=feed,
          ip=t,
          )

  feed.likecount+=1
  feed.save()
  if 'HTTP_REFERER' in request.META:
    return HttpResponseRedirect(request.META['HTTP_REFERER'])
  return HttpResponseRedirect('/')

下面是我的html(如div):

代码语言:javascript
复制
<div class="like_abuse_box">
  <p>Likes:<b>{{vote.feed_set.count}}</b> ||
   <a class="like" href="/like/{{feed.id}}/">Like</a> | 
   <a class="abuse" href="/abuse/{{feed.id}}/">Abuse</a> || </p>
</div>

我应该包括哪些代码来只刷新特定的div和更新的类似计数显示,而不是整个页面被重新加载。需要帮助。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-05-28 04:58:07

第一件事:在要注入内容的html元素上放一个id。

代码语言:javascript
复制
<div class="like_abuse_box">
  <p>Likes:<b id="like_count">{{vote.feed_set.count}}</b> ||
   <a class="like" href="/like/{{feed.id}}/">Like</a> | 
   <a class="abuse" href="/abuse/{{feed.id}}/">Abuse</a> || </p>
</div>

其次,在您的视图中,您需要返回最新的点赞计数。你不能只在本地更新计数,因为有可能其他人也更新了like计数。

最后。在您页面中包含jquery

代码语言:javascript
复制
$("a.like").bind("click", function(){
    var link = $(this).attr("href");
    $.get(link, function(data) {
        $(this).parent("div").children('b#like_count').html(data);
    });
});

我不太确定父子选择器,从超级链接点击导航到其相应的点赞计数。您可能需要使用JQuery选择器才能得到正确的结果。

ALso,如果对视图使用POST,请将$.get替换为$.post

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6157228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档