0

我在元素悬停时遇到 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();
    }
});

有什么建议么?

4

1 回答 1

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']();
});​
于 2012-10-29T20:35:47.327 回答