我是 django 的新手,找不到仅刷新 div 的方法,并且 div 显示了当前的星级评级。我的想法是,用户可以通过单击星星来查看平均评分并对某些内容进行评分,点击后我希望星星显示新的平均评分,而无需刷新整个页面。
这是div:
<div id="rating">
<div class="movierating" id="o_{{ object.id }}">
<span style="display:none;">{{ object.rating_vote.get_rating }}</span>
{{ object.rating_vote.get_rating }}
</div>
</div>
JavaScript 是:
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$('.movierating').each(function(index){
$(this).raty({
readOnly: false,
path: "{{ STATIC_URL }}images/",
start: $(this).children("span:first").text(),
click: function(score, evt) {
var vote_url = "/rate/" + this.attr('id').substring(2) + "/" + score + "/";
var div = this.attr('id');
$.ajax({
url: vote_url,
success: function(){
alert('Vote successful!);
$('#rating').load('#rating');
},
});
}
});
});
});
</script>
有了这个代码
$('#rating').load('#rating');
我将整个页面放入 div 中,当我使用
$('#rating').load('# rating');
我只得到价值,没有星星。
首先,复制里面的代码<div id="rating"></div>
并将其保存到另一个文件中。可以说,
评级.html
<div class="movierating" id="o_{{ object.id }}">
<span style="display:none;">{{ object.rating_vote.get_rating }}</span>
{{ object.rating_vote.get_rating }}
</div>
现在在您的页面中,它将是,
你的.html
............
<div id="rating">
{% include 'rating.html' %}
</div>
............
然后,创建new view
and new url
for rating.html
urls.py
url(r'^rating/$', 'rating', name='rating'),
views.py
def rating(request):
//rating object here
return render(request, 'rating.html', {
//call rating object variable here
})
最后,在你的ajax中
.........
$.ajax({
url: vote_url,
success: function(){
alert('Vote successful!);
$("#rating").load("/app_name/rating/");
},
});
...........
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)