我有以下
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方法不起作用.任何想法为什么会这样?谢谢.
最佳答案 看起来结果是缓存的,为了解决这个问题,强制jQuery以不缓存的方式发出请求.在所有方法调用之前添加这个来做到这一点:
$.ajaxSetup({ cache: false });
有关详细信息,请参阅$.ajaxSetup()
和$.ajax()
.