Код jQuery не будет работать в IE7

#javascript #jquery #internet-explorer #internet-explorer-7

#javascript #jquery #internet-explorer #internet-explorer-7

Вопрос:

Я использую jQuery1.11.1 и выполняю этот код:

   var links= $("#custom-menu").find("li").find("a");
    links.each(function(){
         if($(this).attr("href")==="#openModal")
        {
            $(this).on("click",function(event){
                alert("Click event called on li");
                $("#openModal").css("visibility","visible").fadeIn();
                alert("Is the table showing now");
            });
        }   
    });
  

Это работает в IE8, но не работает в IE7, ничего не происходит, когда я нажимаю li .

Редактировать:

Я сузил его, элемент управления не попадает в этот блок:

  if($(this).attr("href")==="#openModal")
  

Комментарии:

1. В коде у вас есть событие щелчка a , а не включено li .

2. Есть ли у вас где-нибудь онлайн-версия, где мы можем просмотреть результат так, как он должен быть?

3. @panther Это похоже на меню, первоначально они использовали css transistions для его отображения, но не работает с IE7 so, я должен изменить его на использование visibility и fadeIn/fadeOut

Ответ №1:

Я обнаружил, что внутренний / внутристраничный атрибут href в IE7 выглядит следующим образом:

 http://localhost:8080/MyProject/mypage#openModal
  

вместо #openModal

Итак, вместо того, чтобы использовать это

  if($(this).attr("href")==="#openModal")
  

Я использовал:

  if($(this).attr("href")==="#openModal" || $(this).attr("href") ===(window.location.href "#openModal"))
  

Комментарии:

1. Пожалуйста, попробуйте this.hash == '#openModal' выполнить условие if, оно также должно работать в IE7, поскольку части href , такие как hash , host , port , … являются свойствами тега <A> в DOM API