Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQueryUI-“;对象没有';t支持属性或方法';标签'&引用;IE7_Jquery_Jquery Ui_Internet Explorer_Internet Explorer 7 - Fatal编程技术网

jQueryUI-“;对象没有';t支持属性或方法';标签'&引用;IE7

jQueryUI-“;对象没有';t支持属性或方法';标签'&引用;IE7,jquery,jquery-ui,internet-explorer,internet-explorer-7,Jquery,Jquery Ui,Internet Explorer,Internet Explorer 7,我有一个可以在几乎所有浏览器上使用jQueryUI选项卡的完美工作网页——它在IE7上不起作用 我所有的代码都是由asp文件呈现的——包括数据、JavaScript和CSS,还有创建选项卡的代码 我的第一个问题是,在IE7中,我在警报框中得到了以下消息: Internet Explorer无法打开Internet站点 几个小时后,我找到了一种使用script标记修复此问题的方法 现在,我得到以下错误: 对象不支持属性或方法“选项卡” 当我检查jQuery和jQueryUI版本(以查看它们是否存在

我有一个可以在几乎所有浏览器上使用jQueryUI选项卡的完美工作网页——它在IE7上不起作用

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

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

Internet Explorer无法打开Internet站点

几个小时后,我找到了一种使用script标记修复此问题的方法

现在,我得到以下错误:

对象不支持属性或方法“选项卡”

当我检查jQuery和jQueryUI版本(以查看它们是否存在)时,我只得到jQuery的结果

我假设jqueryui没有加载,或者创建选项卡的脚本在加载库之前执行,尽管它应该在文档就绪时执行


有人面临同样的问题吗?

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

您根本不需要使用
defer
,因此我建议不要使用
defer
并发布有关原始问题的问题,因为添加
defer
不应该是解决问题的方法

但是,如果您想继续使用
defer
,请删除jQuery UI脚本标记,并将其放在页面底部,就在关闭
标记之前:

<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>

(功能(){
var waitingForUI=false;
loadScripts();
函数loadScripts(){
if(window.jQuery&&window.jQuery.fn.tabs){
//jQuery和jQuery UI都已加载。

//==>您在这里使用'tabs'的代码我也遇到了这个问题,我发现我保存了“jqueryui.css”内容而不是“jqueryui.js”内容。

检查您是否使用了正确的文件?

if(window.jQuery){jQuery.getScript('/your/path/to/jQuery/ui');}
=DThanks获取删除“defer”标记并关注实际问题的建议。我终于找到了它-在$(文档)外部调用的JavaScript函数.ready函数。@gotqn:好了,很高兴你把它整理好了!这与其说是答案,不如说是评论