0

我在选项卡上有一个非常简单的 mouseenter 来淡入子 div 的事情,但我希望触摸设备能够点击关闭链接来淡出孩子。这工作顺利。

当 iOS 用户再次点击选项卡以淡入其子项时,它会淡入然后立即淡出。尝试第三次,它甚至没有淡入。

如何让标签的每次点击都像第一次一样淡入?

jQuery

    $('#form').on({
    mouseenter: function () {
        clearTimeout( $(this).data('timeoutId') );
        $(this).children('div').fadeIn(300);
        $('#oops').fadeIn(80);
    },
    mouseleave: function() {
        var self = this;
        var timeoutId = setTimeout( function() {
            $(self).children('div').fadeOut(700);
                $('#oops').fadeOut(300);
        }, 700);
        $(self).data('timeoutId', timeoutId);
    }

});
$('#closer').click(function(){
    $('.hiding').fadeOut(700);
    $('#oops').fadeOut(400);                                    
});

​</p>

这是小提琴:http: //jsfiddle.net/natejones/mnWb6/

4

1 回答 1

0

如果您希望它的行为与悬停完全一样

$('#form').live('touchstart', function() {
   $(this).trigger('mouseenter');
});
$('#form').live('touchend', function() {
   $(this).trigger('mouseleave');
});

我认为这是正确的代码,但如果不是,那就是这个想法。如果你想让它做不同的事情,那么你可以在 touchstart/touchend 中定义它。我认为这仅适用于 iOS,但我可能是错的。touchstart 是手指触摸屏幕的时候,touchend 是手指离开屏幕的时候。还有touchmove,当您的手指在屏幕上并移动时。

于 2012-06-01T14:52:53.313 回答