IE8:奇怪的jQuery显示元素问题无论方法(幻灯片,显示,淡入淡出)

时间:2013-07-16 14:29:34

标签: jquery internet-explorer drupal internet-explorer-8 drupal-7

这是微软另一个奇怪的好奇心。在IE8中,当我试图显示一个特定元素时,无论方法(幻灯片,显示,淡入淡出)如何,它都没有显示......但是在那里。因此,如果您转到IE8中的http://www.stratfor.com并将鼠标悬停在下拉菜单主菜单链接上,您会发现一个小边框显示在该元素的正下方,该边框属于下拉菜单,但不会显示整个东西。现在移动鼠标,你会注意到链接在那里并且可以点击,你只是看不到它们。单击链接时,在页面重新加载之前,将显示下拉列表。

它必须与这些元素的设置方式有关,因为在网站的其他区域,没有这个问题。我已经尝试了从悬停到绑定的不同jQuery方法。我在页面加载并正确显示时将下拉列表设置为块。我将下拉列表设置为一个块,一旦页面加载就用jQuery隐藏它,并且行为仍然存在。

以下是我使用的代码:

(function ($) {
  // Initialize the main menu dropdowns.
  Drupal.behaviors.mainMenu = {
    attach: function (context, settings) {
      $('#block-system-main-menu .site-menu li', context).hover(
        function() {
          $(this).addClass('is-active');
          if ( $('.site-submenu', this).length ) {
            $('.site-submenu', this).slideDown('fast');
          }
        }, function() {
          $(this).removeClass('is-active');
          if ( $('.site-submenu', this ).length && $('.site-submenu', this).is(':visible')) {
            $('.site-submenu', this).hide();
          }
        });
      }
    };
  }
})(jQuery);

查看CSS,也许我已经在那里找到了一些关闭的东西。

这个让我疯了。任何帮助将不胜感激!

更新:我尝试将下拉菜单定位到顶部而非菜单下方,这似乎有所帮助。下拉列表的一个父元素似乎是隐藏(sorta,因为你仍然可以点击链接)下拉框一旦经过它的容器。

更新:默认情况下,下拉菜单设置为显示时,会按预期显示。然后隐藏它,并根据悬停显示它会再次导致问题。我还检查并重新检查了父元素的定位和z-index。这是一个奇怪的,因为它适用于IE7以及除IE8之外我发现的所有其他浏览器和版本。

1 个答案:

答案 0 :(得分:1)

这是IE 8中的屏幕截图:(正常工作)

Screenshot