Django jquery .load(){%url%}保持DRY

时间:2012-01-31 12:05:06

标签: jquery django

我正在尝试通过ajax调用使“详细信息”链接加载详细信息。

这就是我决定使用JQuery load()函数的原因。

每个链接都有自己的data-offer_id属性,所有链接类名都是相同的。

<a href="#" data-offer_id="{{ object.id }}" class="offer_ajax">Details</a>

然后,有一个javascript代码。

$(".offer_ajax").click(function () {
    var url = "/some/url/details/"+ $(this).attr("data-offer_id");
$(this).load(url);

问题是我宁愿使用上面的{%url someviewname object_id%}来表示“url”js var。

我可以在data-offer_details_url =“{%url ...%}”中设置网址并使用var url = $(this).attr("data-offer_details_url"代替,但这是唯一的方法吗?

如果网址很长并且显示了很多记录,那么加载的代码就会增加......

由于

1 个答案:

答案 0 :(得分:2)

你应该这样做:

<a href="{% url ... %}" class="offer_ajax"/>

如果您在进入该链接之前需要进行一些检查,可以使用以下内容:

$('.offer_ajax').click(function() {
    if(!check_if_everything_ok()) {
        return false; // the page won't change
    }
});

另外,如果您还需要object.id,则还应该包含data-offer_id属性(并且不会重复这样做,因为优惠ID !=优惠网址)

相关问题