2013-09-28 100 views
2

我有點卡住了,我試圖添加投票系統到我的博客使用jQuery,Ajax和Django,但我沒有找到最好的方式來做到這一點。投票系統與Django,jQuery和Ajax

這裏是我的問題:

  1. 我怎樣才能獲得{{blog.id}}在具有發送作爲方法.post的參數我的jQuery腳本?
  2. 在我的jQuery腳本中,如何找到{%static%}用於更改投票圖像的路徑?

這裏是我得到了什麼,至今...

votes.html

<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> 

的jQuery /阿賈克斯

$(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

我找到了解決辦法,找我每天blog.id的唯一ID:

var id = $('input[name="blog_id"]', $(this)).val(); 

和@DGS說,找到我使用的靜態路徑:

<script> 
    var static_path = "{% static "assets/images/" %}" 
</script> 
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> 

並引用這些值。

+0

謝謝你,'$('input [name =「blog_id」]')。val();'返回blog.id的最後一個id,而不是所選的那個,我錯過了什麼? – Pompeyo

+0

問題是我在一個循環內,所以有很多投票顯示。這就是爲什麼我得到最後一個blog.id。有沒有在jQuery中找到'$(this)'選定輸入的方法? – Pompeyo