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

时间:2015-04-10 17:17:08

标签: javascript jquery dom undefined

我的问题我的网页存在问题,其中100个页面加载中的1个给出了“未定义未定义”错误。此错误是由jquery插件在实际加载之前初始化引起的。我目前的解决方案是使用window.load,它可以很好地工作,但可以在1秒到无穷大的任何时间内取决于长期的共享者决定加载(并且它比addthis更快)。

我的问题是否有一些方法可以在插件加载后初始化插件,例如成功事件或包含插件的内容?我找不到任何东西。

希望这对其他遇到此问题的人也有用。

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

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

或仅$.getScript()

答案 1 :(得分:1)

听起来你需要等待一个与DOM无关的特定事件,但这与你的代码执行方式有关。我发现jQuery能够为此目的发起自定义事件。

e.g:

//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
 });