代码之家  ›  专栏  ›  技术社区  ›  Mike Crittenden

IE7在悬停之前不会从导航中删除活动状态

  •  0
  • Mike Crittenden  · 技术社区  · 16 年前

    该网站是 http://greenvillenext.com/site (注意:请忽略疯狂的加载时间和一切,我已经知道)。

    事情是这样的:单击主导航中的一个项目(顶部的五个链接)会给该项目一个“活动”类,当您单击另一个项目时,它会从该项目中删除活动类并将其添加到新项目中。显然,这个活动类用于设置导航链接的样式,以让您知道自己在哪里。

    但是,在IE7中,单击导航中的其他链接不会从以前的活动链接中删除活动样式,直到您将鼠标悬停在该链接上,这似乎会重置它。

    我在这里不知所措。我尝试过我能找到的任何类型的peek-a-boo黑客(例如min width:0),我将一个“非活动”类设置为非活动链接,并采用不同的样式,等等。在IE7中将鼠标悬停在它上面之前,似乎没有任何东西可以重置它。

    有什么想法吗?

    2 回复  |  直到 16 年前
        1
  •  0
  •   Stefan Kendall    16 年前

    如何定义悬停?最简单(也是最可靠的方法)是使用jQuery。

    $('.myNav').hover( function(){
    
    $('.myNav').removeAttr //remove whatever styling hover causes
    $(this).css //set the background/do hover animation
    
    });
    

    您需要一种方法来标记当前选定的选项卡并忽略它;您可以始终在元素上使用某些属性来标记这些元素。我看到你们的导航元素都是不同的类别;为了便于分组,我会在所有这些类中添加另一个类。

    对于所有反对jQuery的人:他已经在使用jqueryui了,所以添加jQuery插件是一个没有实际意义的问题。这将比任何国产解决方案更具可读性且可能更高效。

        2
  •  0
  •   Mike Crittenden    16 年前