jQuery fadeIn () не работает в IE - PullRequest
0 голосов
/ 29 апреля 2010
$(document).ready(function() {

 //Default Action
 $(".tab_content").hide(); //Hide all content
 $("ul.tabs li:first").addClass("active").show(); //Activate first tab
 $(".tab_content:first").show(); //Show first tab content

 //On Click Event
 $("ul.tabs li").click(function() {
  $("ul.tabs li").removeClass("active"); //Remove any "active" class
  $(this).addClass("active"); //Add "active" class to selected tab
  $(".tab_content").hide(); //Hide all tab content
  var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
  $(activeTab).fadeIn("slow"); //Fade in the active content
  return false;
 });

});

Работает во всем, кроме IE?

Ответы [ 2 ]

1 голос
/ 29 апреля 2010

Вы можете сделать это, чтобы получить согласованное поведение:

var activeTab = $(this).find("a").get(0).hash;

IE любит возвращать не "#id", а вместо этого думает, что вы хотите: "http://site.com/currentPage.html#id", что не сработает для селектора :) Если вы берете .hash с элемента DOM, вы получаете только он #id порция последовательно.

Вы можете найти более подробное обсуждение , почему это происходит в этом вопросе

0 голосов
/ 29 апреля 2010

$(this).find("a").attr("href") возвращает вам HREF цели, а не цели. Предполагая, что вы вводите название DIV в href, это может быть правильным (я не знаю, что там).

Попробуйте alert($(this).find("a").href()), чтобы проверить, правильно ли вы выбрали элемент, или просто попробуйте .show() и посмотрите, что получится.

...