JQuery:Live标签部分工作第二次

我有以下
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().

点赞