我有这段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?谢谢!
答案 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事件