window.load 和 document.ready 的替代方案

Alternative to window.load and document.ready

我的问题 我的网页有问题,每加载 100 个页面就有 1 个出现 "Undefined is not defined" 错误。此错误是由 jquery 插件在实际加载之前被初始化引起的。我目前的解决方法是使用 window.load,效果很好,但可能需要 1 秒到无穷大,具体取决于 shareaholic 决定加载多长时间(而且它比 addthis 更快)。

我的问题 有没有什么方法可以在插件加载后才对其进行初始化,比如 Success 事件或包含插件的东西?我什么也没找到。

希望这对其他 运行 也有此经验的人有用。

你可以试试这个:

$.ajax({
    url: pluginUrl,
    dataType: "script",
    success: initializePlugin
});

$.getScript()

听起来您需要等待与 DOM 无关但与代码执行方式相关的特定事件。我发现 jQuery 触发自定义事件的能力非常适合此目的。

例如:

//start of script - do some asynchronous work
$.ajax({})
  .done(function() {
    //ready to initialize the plugin - trigger an event
    $(document).trigger('initializeMyPlugin');
  });


//listen for the event and initialize your plugin when it is fired
$(document)
 .on('initializeMyPlugin',function() {
   // initialization code
 });