【问题标题】:Why does my jQuery not work in Internet Explorer 6?为什么我的 jQuery 在 Internet Explorer 6 中不起作用?
【发布时间】:2014-07-09 02:47:28
【问题描述】:

我正在设计一个网页,我正在使用 jQuery。

网页使用 Ajax。 Internet Explorer 6 及更低版本无法正确显示页面。甚至 Ajax 代码似乎也不起作用。

代码:

jQuery(document).ready(function($) {
    // Hide all sub heading lists
    $("#content1").load("sub/image1.html");
    $("li[@id^='cont']").click(function(){
         var current_id=$(this).attr('id');
         switch(current_id){
             case 'content_1':$("#content1").load("sub/my.html");break;
             default:;
         }
    });
});

代码在 Internet Explorer 7、Internet Explorer 8、Chrome 和 Firefox 中完美运行。在 Internet Explorer 6 或更低版本中不起作用。

我做错了什么?

【问题讨论】:

  • 我认为您可能需要提供更多有关您正在尝试做的事情的信息。 jQuery 应该支持 IE 6,所以可能会有其他事情发生。哪段代码不再有效?你能把它粘贴到你的问题中吗?
  • 我同意Damovisa,你必须提供更多信息才能解决这个问题^^
  • case 'content_1':$("#content1").load("sub/my.html");break;.你真的把所有这些都放在了 1 行吗? #1 可读代码规则:哪里有 ;应该有一个新行。
  • 问题是发现一些 windowsserver2003 版本的 ie 行为很傻 .. 因为坏 ie

标签: jquery internet-explorer-6


【解决方案1】:

我真的不知道为什么它不起作用,但你可以尝试将 jQuery 升级到 1.3 版。

如果您已经升级到 1.3,那么您的脚本将会失败,因为在 jQuery 1.2 中不推荐使用属性名称之前的 @。拿出来看看效果如何。

$("li[id^='cont']").click(function() { ...

【讨论】:

    【解决方案2】:

    只是一些想法:

    • 尝试使用$(document).ready(),而不是jQuery(document).ready()

    • 该行:$("li[@id^='cont']") 可能是导致 IE 6 中问题的原因。您似乎只是想选择 ID 以 cont 开头的所有 <li> 项目。相反,您可以尝试给所有<li>s 一个类,例如contLi,然后是代码:

      $(".contLi") 将选择与以前相同的<li>s,它也可以在 IE 6 中使用。

    【讨论】:

    • 因为我使用了 Javascript Accordion,所以我必须使用 jQuery(document).ready()..
    • $ === jQuery,除非你在做一些奇怪的事情。
    • 如果他们在页面上有其他东西使用 $()(例如原型),那么他们可能会将 jQuery 置于 noConflict 中,这意味着他们需要使用 jQuery(),而不是 $()
    【解决方案3】:

    这可能与default:; 有关。我过去发现 Internet Explorer 6 有时不喜欢你在应该有东西的时候留下一些空的东西,即使它在技术上并不错误。

    所以试试default: break;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      相关资源
      最近更新 更多