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