悬停时使用mouseenter mouseleave的jquery问题

时间:2012-10-29 20:31:22

标签: jquery mouseover mouseenter

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

有什么建议吗?

1 个答案:

答案 0 :(得分: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']();
});​