我有以下jquery代码:
$("a[id*='Add_']").live('click', function() {
//Get parentID to add to.
var parentID = $(this).attr('id').substring(4);
//Get div.
var div = $("#CreateList");
//Ajax call to refresh "CreateList" div with new unordered list.
div.load("/AddUnit?ParentID=" + parentID);
});
基本上,div中包含一个带有几个“Add_#”链接的嵌套无序列表。单击链接使用ajax调用以使用新节点重新创建列表。它会清除所有添加链接,但是它们会被ajax调用再次添加。这就是为什么我使用.live方法,所以新添加的“Add_#”链接仍然具有绑定。
这在大多数情况下都适用。如果我单击“Add_1”,则div将刷新新信息。如果我然后单击“Add_2”,它将按预期再次运行。
当我点击“Add_1”,然后页面刷新(并创建一个新的“Add_1”链接)时,我遇到了问题,然后我再次点击重新渲染的“Add_1”。它是相同的链接,但在ajax调用期间刷新了。当我这样做时,javascript函数仍然被调用,但.load方法不起作用。任何想法为什么会这样?感谢。
答案 0 :(得分:2)
看起来结果是缓存的,为了解决这个问题,强制jQuery以不缓存的方式发出请求。在所有方法调用之前添加它,以执行此操作:
$.ajaxSetup({ cache: false });
您可以查看$.ajaxSetup()
和$.ajax()
了解详情。