我有像这样的ajax功能正常工作:
function show_tasks() {
$.ajax({
type: "GET",
url: "/2/todos/", //I want url: "/{{ category.id }}/todos/"
success: function(data){
$('#tasks').html(data)
.css("display", "block");
}
});
}
{% for category in categories %}
<tr>
<td width="5%"><input type="checkbox" value="{{ category.id }}" name="category_name" id="category{{ forloop.counter }}" /></td>
<td>
<a data-toggle="tooltip" title="Show Tasks" onclick="show_tasks()">
{{ category.name }}</a>
{% endfor %}
我该怎么做?
答案 0 :(得分:3)
使用模板处理器在html中构建url,例如:
...
<a data-toggle="tooltip" title="Show Tasks"
onclick="show_tasks({% url 'category_todo' category.id %})">
...
并在您的javascript中添加网址支持:
function show_tasks(url){...
url: url,
...
}
答案 1 :(得分:2)
您可以使用this
获取在show_tasks
函数中生成click事件的dom元素。从那里,只需使用jquery来查找相邻复选框的值。
您可以在var category = $(this).closest('input').attr('value')
中执行show_tasks
之类的操作,以获取类别ID并将其提供给$.ajax
,如url : "/" + category + "/todos/"
。