jquery - 如何在触摸设备上模拟悬停效果?

标签 jquery mobile hover

我有一个网页,在悬停时有一些 css3 动画,我希望当用户触摸这些元素时它可以在 iPad(以及任何支持触摸的设备)上运行。
这是我的代码:

html:

<div id="headBlock">
    <a id="arm"></a>
    <div id="head">
        <div id="blink"></div>
        <div id="lid"></div>
        <div id="man"></div>
        <a id="man-arm"></a>
    </div>
</div>

js:

//arm
$('#arm').hover(function(){
    $(this).removeAttr('style').css('bottom','244px');
    $(this).addClass('hover_effect');

    }, function(){
        $(this).removeClass('hover_effect');
});

//man arm
$('#man').hover(function(){
    $('#man-arm').removeAttr('style');
    $('#man-arm').addClass('hover_effect');

    }, function(){
        $('#man-arm').removeClass('hover_effect');
});

您可以看到,当鼠标进入元素时,我删除样式,然后应用样式并添加 css 类“hover_effect”,当鼠标离开时,我删除“hover_effect”类。
如何在触摸设备上实现同样的效果?单击事件没有回调,因此我无法在单击发生后删除“hover_effect”类。我尝试了 mousedown 和 mouseup 但没有成功。我搜索了 stackoverflow,发现了这个 How do I simulate a hover with a touch in touch enabled browsers?但没有任何效果。
有人知道吗?

谢谢
毛罗

最佳答案

试试这个

$('#arm').bind('touchstart', function() {
        $(this).removeAttr('style').css('bottom','244px');
        $(this).addClass('hover_effect');
});

$('#arm').bind('touchend', function() {
        $(this).removeClass('hover_effect');
});

$('#man')类似。

关于jquery - 如何在触摸设备上模拟悬停效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8970280/

相关文章:

Javascript 复选框切换问题

javascript - 如何在浏览器关闭时执行数据库操作?

android - 位置 :fixed in Android HTC Incredible 2?

jQuery 隐藏 + CSS 鼠标悬停问题

javascript - 悬停不适用于 Javascript、CSS 和 HTML

CSS: LINK:HOVER 背景图像似乎有效,但一旦悬停就不会出现

jquery - 多个自动完成调用 - jQuery

javascript - 如果有字符串中断 AngularJS,则插入连字符

javascript - 完全加载完整页面后发生移动站点重定向

javascript - HTML5 应用程序中的加载屏幕