我有点卡住,我正在尝试使用jQuery,Ajax和Django为我的博客添加一个投票系统,但我找不到最好的方法来做到这一点。
以下是我的问题:
到目前为止,这是我得到的......
<a>Total: {{ total_votes }} </a>
<input type="hidden" name="blog_id" value={{ blog.id }}>
<div class="vote-buttons">
{% if vote.up %}
<img class="vote-up selected" src="{%static "assets/images/up_on.png"%}"/>
{% else %}
<img class="vote-up" src="{% static "assets/images/up_off.png" %}"/>
{% endif %}
{% if vote.down %}
<img class="vote-down selected" src="{%static "assets/images/down_on.png"%}"/>
{% else %}
<img class="vote-down" src="{% static "assets/images/down_off.png" %}"/>
{% endif %}
</div>
$(document).ready(function(){
$('.vote-up, .vote-down').css('cursor', 'pointer');
$('div.vote-buttons img.vote-up').click(function(){
if($(this).hasClass('selected')){
$.post('myurl', {params:params}, function(response){
$(this).removeAttr('src')
.attr('src',"...") # how to get the template {% static %} path?
.removeClass('selected');
});
}else{
# when vote isn't selected
}
});
});
答案 0 :(得分:2)
{{ blog.id }}
将成为名为blog_id的隐藏输入的值,因此您可以像这样找到它
$('input[name="blog_id"]').val();
通过查看其中一个图像的src可以找到静态路径。
尝试$('.vote-up').attr('src').replace('assets/images/up_off.png','');
您也可以创建javascript变量来为您处理模板中的值。
<script>
var blog_id = {{ blog.id }};
var static_path = "{% static "assets/images/" %}"
</script>
并引用这些值。
答案 1 :(得分:0)
我找到了解决方案,找到我使用的每个blog.id的唯一ID:
var id = $('input[name="blog_id"]', $(this)).val();
并且正如@DGS所说,找到我使用的静态路径:
<script>
var static_path = "{% static "assets/images/" %}"
</script>