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
});
我的问题 我的网页有问题,每加载 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
});