我正在尝试为我的用户创建一个控件面板,其中页面永远不会刷新,但是包含相关内容的不同面板会“刷新”以反映更改。我这样做是通过使用:
.load()或
.html()//用于读取.get()和.post()结果
但是,当我尝试加载新内容时,我没有应用于相关加载类和ID的JQuery。我可以通过在加载的内容中包含JQuery来解决这个问题,但这看起来很浪费,而且难以维护。
有没有办法自动将现有的JQuery设置应用于加载的内容?
答案 0 :(得分:3)
jQuery事件在运行时绑定,通常在DOM就绪函数中绑定,所以如果你有以下内容:
$(".test").click(function() {
您在运行时找到的“test”类的所有元素都有一个click事件处理程序。现在您通过AJAX或其他一些功能加载一些新的HTML。即使这个新元素具有类“test”,这个处理程序也不适用,因为在运行时处理程序不知道这些新元素。解决方案:事件委派
$(document).on("click", ".test", function() {
上面将把一个处理程序绑定到document
,该document
侦听具有类“test”的元素的点击。 {{1}}不是非常具体,因此最好将其替换为正在加载的新HTML的容器。