我正在尝试通过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"
代替,但这是唯一的方法吗?
如果网址很长并且显示了很多记录,那么加载的代码就会增加......
由于
答案 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 !=优惠网址)