Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery IE7在悬停之前不会从导航中删除活动状态_Jquery_Html_Css - Fatal编程技术网

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

Jquery IE7在悬停之前不会从导航中删除活动状态,jquery,html,css,Jquery,Html,Css,该网站是(注:请忽略疯狂的加载时间和一切,我已经知道) 事情是这样的:单击主导航中的一个项目(顶部的五个链接)会给该项目一个“活动”类,当您单击另一个项目时,它会从该项目中删除活动类并将其添加到新项目中。显然,这个活动类用于设置导航链接的样式,以让您知道自己在哪里 但是,在IE7中,单击导航中的其他链接不会从以前的活动链接中删除活动样式,直到您将鼠标悬停在该链接上,这似乎会重置它 我在这里不知所措。我尝试过我能找到的任何类型的peek-a-boo黑客(例如min width:0),我将一个“非活

该网站是(注:请忽略疯狂的加载时间和一切,我已经知道)

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

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

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


有什么想法吗?

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

$('.myNav').hover( function(){

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

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


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

事实证明,设计师为所有版本的IE启用了DD_latedpng,而不仅仅是IE6,这是罪魁祸首。

我只是在CSS中使用:hover伪类。有什么原因我不知道为什么悬停状态应该在JS中完成吗?如果你想悬停任何不是锚的东西,你需要使用javascript来兼容IE。这也完全消除了跨浏览器CSS呈现问题的可能性,这些问题很多。不要认为是悬停导致了问题。IE似乎不尊重通过JS删除“活动”类这一事实,直到你将鼠标悬停在它上面(这会重置它),它才意识到这一点。你是否像我建议的那样,尝试过单击或悬停删除活动类$('.myNav').removeClass('active');它已经设置好了,因此单击任何导航元素都会从之前具有活动类的导航元素中删除活动类。悬停不应该和它有任何关系。如果我误解了你,我道歉。