Проблема jquery с mouseenter mouseleave при наведении

У меня проблема с jquery mouseenter/mouseleave при наведении элемента, когда что-то постоянно мерцает. Так вроде работает, но мерцает.

Вот код, который у меня есть (готов):

myLinkElement.bind({
    mouseenter: function (e) {
        $(this).parent().removeClass("empty");
        $(this).parent().addClass("waiting");
        $(this).parent().find("#waitingText").html("hello");
        myContainerOverlay.stop(true, true).fadeIn();
    },
    mouseleave: function (e) {
        $(this).parent().addClass("empty");
        $(this).parent().removeClass("waiting");
        $(this).parent().find("#waitingText").html("");
        myContainerOverlay.stop(true, true).fadeOut();
    }
});

Какие-либо предложения?


person IntricatePixels    schedule 29.10.2012    source источник
comment
Соберите скрипку, чтобы продемонстрировать проблему, и сообщите нам, с какими браузерами вы это пробовали.   -  person Matt Burland    schedule 30.10.2012
comment
Опубликуйте какой-нибудь HTML-код с этим или событием, лучше сделайте скрипку, демонстрирующую вашу проблему.   -  person Bogdan    schedule 30.10.2012
comment
Текст mkLinkElement или встроенный блок? Другими словами, что такое настройка отображения CSS. Я видел это, когда вы помещаете его в текст, который не установлен как блок или встроенный блок, потому что класс изменяет текст, и теперь мышь не находится точно над буквой.   -  person Pitchinnate    schedule 30.10.2012


Ответы (1)


Вот предложение, но без скрипки или любого html трудно сказать, будет ли оно работать, это зависит от того, как изначально установлены классы и видимость элементов и т.д.:

myLinkElement.on('mouseenter mouseleave', function() {
        $(this).parent().toggleClass('empty waiting').find("#waitingText").html("hello");
        myContainerOverlay.fadeToggle();        
});​

Или другой подход:

myLinkElement.on('mouseenter mouseleave', function(e) {
    var state = e.type=='mouseenter';
    $(this).parent().toggleClass('empty waiting')
           .find("#waitingText").html(state?"hello":"");
    myContainerOverlay[state?'fadeIn':'fadeOut']();
});​
person adeneo    schedule 29.10.2012