gpt4 book ai didi

jQuery UI - "Object doesn' t 支持属性或方法 'tabs'“IE7

转载 作者:行者123 更新时间:2023-12-01 08:10:55 24 4
gpt4 key购买 nike

我有一个完美工作的网页,几乎在所有浏览器上都使用 jQuery UI 选项卡 - 它在 IE7 上不起作用。

我的所有代码都是由 asp 文件呈现的 - 包括数据、JavaScript 和 CSS,并且还有创建选项卡的代码。

我的第一个问题是,在 IE7 中,我在警报框中收到以下消息:

Internet Explorer cannot open the Internet site.

几个小时后,我找到了一种使用 defer Attribute 修复此问题的方法脚本标签。

现在,我收到以下错误:

Object doesn't support property or method 'tabs'

当我检查 jQuery 和 jQuery UI 版本(以查看它们是否已加载)时,我仅得到 jQuery 的结果。

我想,jQuery UI 未加载,或者创建选项卡的脚本在加载库之前执行,尽管它应该在文档准备好时执行。

有人遇到同样的问题吗?

最佳答案

加载 jQuery UI 的脚本标记依赖于在加载 jQuery UI 脚本之前运行的 jQuery 脚本标记中的 JavaScript。如果您使用defer jQuery 脚本标记上的属性,您会引入竞争条件,并可能最终导致 jQuery UI 首先加载并失败(不将 tabs 添加到 jQuery.fn )。因此,您的代码使用 tabs 并不重要。函数位于 ready回调。

您不需要使用 defer根本没有,所以我建议不要使用defer,而不是尝试解决这个问题。并发布有关您原来问题的问题,如添加 defer不应该是解决方案。

如果您想继续使用defer不过,请删除您的 jQuery UI 脚本标记,并将其放在页面底部,就在结束 </body> 之前。标签:

<script>
(function() {
var waitingForUI = false;

loadScripts();

function loadScripts() {
if (window.jQuery && window.jQuery.fn.tabs) {
// Both jQuery and jQuery UI are loaded.
// ==> your code using `tabs` here <==
}
else {
if (window.jQuery) {
// jQuery is loaded but not jQuery UI, go get it
// unless we've already started loading it
if (!waitingForUI) {
waitingForUI = true;
jQuery.getScript("/your/path/to/jquery/ui");
}
}
setTimeout(loadScripts, 10);
}
}
})();
</script>
</body>

这将等待 jQuery 加载,然后加载 jQuery UI 脚本,然后触发您的代码。

当然,也可以使用 tabs 创建您自己的包含 jQuery 和 jQuery UI 的脚本文件,然后使用您的代码。 ,然后加载该文件。

关于jQuery UI - "Object doesn' t 支持属性或方法 'tabs'“IE7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13740493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com