JQuery проблема зависания в IE - PullRequest
0 голосов
/ 17 мая 2011

Я только что использовал jquery hover:

$.each(navItems, function(i){
    $(navItems[i]).hover(function(){
        $(this).find('ul:first').css({visibility: "visible",display: "none"}).show();
    },function(){
        $(this).find('ul:first').css({visibility: "hidden"});
    });
});

Я отлично работаю на всех браузерах, кроме IE.Я искал другой код, который отлично работает во всех основных браузерах (включая IE), обычно они также используют то же, что и я.Кто-нибудь может помочь мне объяснить, что я не так?полный код здесь: http://jsfiddle.net/XrMNr/

Ответы [ 2 ]

1 голос
/ 17 мая 2011

Все, что вам нужно, это:

$(".NaviItem").hover(function() {
    $(this).find('ul:first').show();
}, function() {
    $(this).find('ul:first').hide();
});
  • Выберите ваши целевые элементы просто с помощью .NaviItem. Это вернет все элементы с классом NaviItem
  • Вам не нужно повторять, используя each(). В этом случае обработчик hover применяется ко всем вхождениям .NaviItem
  • Чтобы показать / скрыть, вам не нужно устанавливать CSS, просто используйте show() и hide(), или какую-нибудь анимационную функцию, например fadeOut / fadeIn.
0 голосов
/ 17 мая 2011

Почему вы зависаете в цикле? Вы пробовали ...

$('.NaviItem').hover(function(){
    $(this).find('ul:first').css({visibility: "visible", display: "none"}).show();
},function(){
    $(this).find('ul:first').css({visibility: "hidden"});
});
...