【问题标题】:jQuery - Object Expected on IE and $(document).ready(function() {});jQuery - IE 和 $(document).ready(function() {}) 上需要的对象;
【发布时间】:2010-11-16 22:13:51
【问题描述】:

我有一个在 FireFox 和 Chrome 中运行良好的页面 ([LINK REMOVED]),但由于某种原因,我在大多数(如果不是所有版本的 IE)中都收到“预期对象”错误。

错误发生就行了

$(document).ready(function() {
    //^ Error occurs here ^
    ...
}

我正在使用jQuery Tools,它实现了 jQuery 1.4.2,以及一些额外的东西。

我已经做了一些阅读。我尝试将 ready 函数放在代码末尾,就在 </body> 标记之前 - 此外,我尝试实现一个计时器让 IE 在执行之前加载,我无法摆脱这个错误。

【问题讨论】:

  • 能把整页的源码贴上来吗?
  • 感谢您的回复。这是相当多的代码,所以我提供了一个链接......
  • 你尝试过 $(function() { }) 的文件准备方法了吗?
  • @blesh - 是的.. 我什至还在 index2.php 中保留它
  • 确切的错误信息是什么?

标签: jquery internet-explorer jquery-tools document-ready


【解决方案1】:

这是一个可能导致 IE 阻塞的问题,而其他浏览器可能不会:

$('#' + resultDivName).animate({
  height: '300px', // <=== TRAILING COMMA
}, 500, function() {
  // Animation complete.
});  

然后,在您的 qtip 调用中,您有:

target: 'popPart_WM300BP'

我相信target takes a jQuery DOM object,不是字符串。 DebugBar 指向这一行作为“预期对象”的原因。

最后,看起来这个版本的 jQuery Tools 包含了 jQuery 1.4.2。也许 1.4.3 或 1.4.4 值得一试。

【讨论】:

  • 哇。我觉得自己是一个完整的工具。这是多余的逗号(实际上不止一个地方)。非常感谢。
  • 另外,我也会调查目标/DOM 问题。非常感谢。
【解决方案2】:

可能是您用于jquery.tools 的网址。它缺少http: 部分。

//cdn.jquerytools.org/1.2.5/jquery.tools.min.js

应该是

http://cdn.jquerytools.org/1.2.5/jquery.tools.min.js

【讨论】:

  • @Ken - 仅当路径正确时。在我看来更像是 OP 正在尝试链接到 jquerytools cdn。
  • 我实际上在我的网络服务器上本地托管了 JS 文件......你看到的长路径是一个实验。我想也许 jQuery 部分正在“迷路”,所以我想指向实际的 JS 文件——我道歉并且将停止玩弄它。不过,请投票赞成。
  • 缺少 http: 本身很好 - paulirish.com/2010/the-protocol-relative-url
  • @Henrik N:很有趣。感谢您的链接。
【解决方案3】:

如果您通过 HTTPS 连接进行测试,请检查您是否选择仅查看安全交付的内容。如果您选择 YES,则可能不会加载脚本。

【讨论】:

    【解决方案4】:

    您的 $(document).ready$(function(){..} 方法很好 - 事实上,当我启动 Visual Studio 调试器并附加到页面时,这些方法按预期启动。问题是他们试图调用一个名为initializePageMain() 的函数,该函数由于某种原因不存在。至于为什么该功能似乎不存在……我不确定。

    我也会尝试“修复”包含此代码的脚本标记(旁注:为什么没有在 index.js 文件中定义 doToolTips?)以像其他脚本标记一样读取(去掉语言元素:

    <script type="text/javascript"> ... </script>
    

    【讨论】:

    • initializePageMain() 在 index.js 中,doToolTips() 在 index.php 的底部 - 就在 $(document).ready() 之前
    【解决方案5】:

    这是另一个在 IE 中导致此错误的 gem

    Math..random();
    

    那两个点 (..) 会毁了你。

    【讨论】:

      猜你喜欢
      • 2010-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      相关资源
      最近更新 更多