1

我有这样的 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");       
                        }
                    });
        }

HTML 内容

{% 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 %}

我怎样才能做到这一点?

4

2 回答 2

3

使用模板处理器在 html 中构造 url,例如:

...
<a data-toggle="tooltip" title="Show Tasks" 
   onclick="show_tasks({% url 'category_todo' category.id %})">
...

并在您的 javascript 中添加 url 支持:

function show_tasks(url){...
   url: url,
   ...
}
于 2013-10-23T08:02:55.153 回答
2

您可以使用来获取在您的函数this中生成单击事件的 dom 元素。show_tasks从那里,只需使用 jquery 来查找相邻复选框的值。

您可以执行类似var category = $(this).closest('input').attr('value')in 的show_tasks操作来获取类别 ID 并将其提供给$.ajaxlike url : "/" + category + "/todos/"

于 2013-10-23T08:03:02.340 回答