У меня нет IE7, но, возможно, попробуйте это сейчас.Не исправляет, но показывает контент, когда его нужно показать ... Ну, неуверенный в IE7, но у него была похожая проблема с IE9.
$(document).ready(function(){
$("#contents").hover( function() {
$("#nav-buttons").fadeToggle("slow").queue(function() {
$(this).fadeIn("slow");
$(this).dequeue();
});
});
});
Также, возможно, избавиться от "display: none; ", потому что он действует странно ... или вы этого хотели?
edit: Я обнаружил, что это может сработать просто для повторного добавления fadeToggle в функцию очереди.Ах, вы хотите что-то показать, когда вы наводите на что-то другое.Я получаю это сейчас.Может быть, просто добавьте еще один fadeToggle в очередь или исчезните, когда мышь больше не находится над div.
edit2: видя, как вы хотите появляться и исчезать, может быть это:
$(document).ready(function(){
$("#contents").mouseenter( function() {
$("#nav-buttons").fadeIn("slow");
}).mouseleave( function() {
$("#nav-buttons").fadeOut("slow");
});
});
Если вы хотите изменить на fadeToggle, я бы посоветовал убрать display: none, когда вы его вызываете, или он будет продолжать отключаться.Затем вы можете вернуть его обратно, когда уходите.
Edit3: по ссылке try:
Проблемы с замиранием в Internet Explorer 7 при использовании jQuery
$(document).ready(function(){
$("#contents")
.mouseenter( function() {
$("#nav-buttons").delay(200).fadeIn(function(){
$(this).css("filter",'');
});
})
.mouseleave( function() {
$("#nav-buttons").delay(200).fadeOut(function(){
$(this).css("filter",'');
});
});
});
Если это не сработает, вам, вероятно, придется использовать прямой CSS.