默认情况下从文档主体实现事件委托

Implement event delegation from document body by default

我的问题始于 IE8 中的一个问题,即通过 ajax(使用 magnificPopup.js)加载包含脚本标签的动态 html 页面时出现的问题。因此我不得不删除所有的 js 代码从这些动态调用的页面并将它们放在一个单独的 .js 文件中,但随后它需要对每个 jQuery 选择器使用 .on,因为当新的 .js 页面与父页面一起加载时,所有元素都不在页面上页。

问:有没有办法让每个 jQuery 选择器

$('#myId') or $('.myClass') 

按如下方式工作

$('body').on('click','#myId',function(){
   /*my code ...*/
})

似乎正确的解决方案是在 ajax 回调块中调用您的函数。

您可以将您的行为放在一个命名函数中,该函数可以在任何地方加载:

function myFunction() {
    $('.myClass').click(function() { ... });
}

然后在通过 ajax:

加载新文件后调用它
$.ajax({...})  
.success(function() {
    myFunction();
});