2

我正在尝试创建一个带有“popup”类的div,它将淡入五秒钟,然后在“left”悬停时淡出,但仅在第一次悬停时。到目前为止,这是我的代码……</p>

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

3 回答 3

4
$('.left').one('mouseenter', function() {
    $('.popup').fadeIn(1000); 
})
.one('mouseleave', function() {
    $('.popup').fadeOut(1000);  
});
于 2012-04-29T21:03:19.697 回答
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);  
    });
}); 
于 2012-04-29T21:03:28.927 回答
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/

于 2012-04-29T21:10:49.577 回答