Почему мой jQuery не работает в Internet Explorer 6? - PullRequest
0 голосов
/ 23 апреля 2009

Я создаю веб-страницу и использую 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 или ниже он не работает.

Что я делаю не так?

Ответы [ 3 ]

1 голос
/ 23 апреля 2009

Я действительно не уверен, почему это не работает, но вы можете попробовать обновить jQuery до версии 1.3.

Если вы уже выполнили обновление до версии 1.3, ваш скрипт не будет работать, поскольку @ до того, как имя атрибута устарело в jQuery 1.2 Выньте это и посмотрите, как это происходит.

$("li[id^='cont']").click(function() { ...
0 голосов
/ 23 апреля 2009

Это может быть как-то связано с default:;. В прошлом я обнаружил, что Internet Explorer 6 иногда не нравится, когда вы оставляете что-то пустым, когда там должно быть что-то, даже если это технически неправильно.

Так что попробуйте default: break;.

0 голосов
/ 23 апреля 2009

Просто несколько идей:

  • Вместо jQuery(document).ready(), попробуйте использовать $(document).ready().

  • Строка: $("li[@id^='cont']") может быть причиной, вызывающей проблему в IE 6. Похоже, вы просто пытаетесь выбрать все элементы <li>, идентификатор которых начинается с cont. Вместо этого вы можете попытаться дать всем <li>s класс, такой как contLi, а затем код:

    $(".contLi") выберет тот же <li>s, что и раньше, и он также может работать в IE 6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...