嵌入式 js 文件不适用于 jQuery .load() 内容



我在我的index.html文件中具有以下代码:

<div id="page-insert"></div>
function openPage(pageid) {
  $('#page-insert').load(pageid);
}
openPage('testpage.html');

当然,index.html上还有一些脚本文件,当然还有一些插件,以及一些插件,例如select2。将其加载到DIV之后,我的插件都无法使用内容。似乎嵌入式JS文件不适用于通过jQuery加载的内容。如何使文件应用于此内容?

您使用的任何插件只能在页面加载时在DOM中可用的内容上实例化。

要在动态加载的内容上实例化插件,您需要使用load()的回调,例如:

function openPage(pageid) {
  $('#page-insert').load(pageid, function() {
    $(this).find('select').select2();
    // other plugins here...
  });
}

还要注意,如果您有事件处理程序,这些事件处理程序应动态添加到内容,则应使用委派事件处理程序。

最新更新