如何使jQuery Load()每次单击时重新加载文件?

时间:2012-10-27 09:45:45

标签: jquery

我有这段jQuery代码:

$('a.manage-content-link').click(function (e) {
    var self = $(this),
        file = self.siblings('input[name="block-type"]').val();
    file = file.substring(file.length - 3);
    self.next(".manage-content-wrap").find(".manage-content").load("file-" + file + ".php?key=" + self.siblings('input[name="key"]').val());
    e.preventDefault();
});

但我认为该代码只是“加载”而非一旦点击它。如果第二次,第三次等单击发生,我都不会看到代码重新加载文件。如何在每次点击事件发生时重新加载jQuery?谢谢!

1 个答案:

答案 0 :(得分:1)

我怀疑每次加载页面时都会替换链接元素(即它是加载内容的一部分)。 如果是这种情况,当您替换元素时,即使具有完全相同的ID,绑定到它的事件也会丢失。您可以通过委派处理程序来解决这个问题,以便考虑代码运行时不存在的未来元素。

请参阅jQuery文档常见问题解答"Why do my events stop working after an AJAX request? "

$(document).on('click','a.manage-content-link',function (e) {
   /* your code*/
})

如果元素没有被替换,问题就出在其他地方(缓存,bug等)。您需要使用浏览器控制台查看是否正在进行AJAX请求。

添加一个简单的日志记录功能insode你的处理程序(或一个警报)将告诉你是否正在执行click事件