0

我有以下 jQuery 代码,

 setTips: function() {
            $(".tooltip").parent().hover(function(){
            //store the tooltip being hovered
            TT.current = $(this);
            TT.timer = setTimeout(function(){
                //find the tooltip
                TT.current.find(".tooltip").fadeIn('fast');
                }, TT.delay);
            }, function(){
                //on mouseout, clear timer and hide tooltip
                clearTimeout(TT.timer);
                $(this).find(".tooltip").fadeOut('fast');

这在浏览器上运行良好,但在 iphone 上,每当出现工具提示时,都无法隐藏它。

有没有办法在跨度之外点击并让它淡出?谢谢!

4

1 回答 1

1

像这样在任何点击时隐藏工具提示的通用点击事件怎么样?

$('body').on('click', function(e) {
    if ( $(e.target).hasClass('.element-that-called-tooltip') ) return; // return if the tapped element was one that called the tooltip
    $('.tooltip').fadeOut('fast');
});

编辑:

所以问题出在iOS悬停事件上。我想说缓解这种情况的最好方法是使用特征检测(使用像Modernizr这样的库),并为非触摸设备绑定悬停事件,并为触摸设备绑定点击事件。

jsFiddle:http: //jsfiddle.net/RAJ5Q/1/

if ( $('html').hasClass('no-touch') ) {
    // bind to hover
}
else {
    // bind to click
}
于 2012-11-21T18:10:26.270 回答