jquery只在第一次悬停时显示div

时间:2012-04-29 20:59:22

标签: jquery variables if-statement hover fade

我正在尝试使用类'popup'创建一个div,它将淡入5秒钟,然后在'left'悬停时淡出,但仅在第一次悬停时淡出。到目前为止,这是我的代码......

$(document).ready(function() {
var i = 1;
if (i == 1) {
    $('.left').hover(function() {
    $('.popup').fadeIn(1000); 
    }, 
    function() {
        $('.popup').fadeOut(1000);  
    });
    i++; 
}; 
});

3 个答案:

答案 0 :(得分:3)

$('.left').one('mouseenter', function() {
    $('.popup').fadeIn(1000); 
})
.one('mouseleave', function() {
    $('.popup').fadeOut(1000);  
});

答案 1 :(得分:0)

如果您希望将所有.left元素应用一次,则可以使用它的.data()属性,如下所示:

$(document).ready(function() {     
    $('.left').hover(function() {
        if ($(this).hasData("hovered_once")==false) {
            $('.popup').fadeIn(1000); 
            $(this).data("hovered_once")=="yes";
        }
    }, 
    function() {
        $('.popup').fadeOut(1000);  
    });
}); 

答案 2 :(得分:0)

你可以这样做。这是示例代码。

$(document).ready(function() {
  var i=1;
  $('.left').on({
        mouseenter: function (e) {
             if(i<2)
             {
              $('.popup').fadeIn(1000); 
                 i++;
             }
        },
        mouseleave: function (e) {
            $('.popup').fadeOut(1000);  
        }
    });

});​

示例演示

http://jsfiddle.net/mediasoftpro/ZtWru/7/