jQuery点击后备sans悬停ipad

时间:2011-04-28 19:29:43

标签: jquery ipad click hover

当你将鼠标悬停在某些东西上(并且悬停)时,我希望有一个函数。但是,我也希望ipad(等)用户可以访问没有悬停的用户。所以我想要一个点击后备是可能的。我如何实现这一目标?请注意,如果悬停正常,我不希望人们能够点击它。这就是我到目前为止所做的,非常接近:

var collapsed=1, noHover=false;
$('#deeper').hover(function() {deeper();});
$('#deeper').click(function() {if (collapsed || noHover) {
  deeper();
  noHover=true;
}});
function deeper() {
  if (collapsed == 1) {
    collapsed = 0;
    $(this).children().show();
  } else {
    collapsed = 1;
    $(this).children().hide();
  }
}

然而,这失败了 - 如果在页面加载时你将鼠标悬停在#deeper上并且在移动鼠标之前单击(鼠标移动似乎需要.hover才能触发),noHover变为true,使点击成为可能,以及徘徊。

必须有更好的方法吗?谢谢!

2 个答案:

答案 0 :(得分:2)

iPad点击时触发触摸事件。一种选择是使用那些而不是单击,而不是传播到click事件(或使用全局变量来跟踪点击/触摸状态)

触摸工作就像点击一样。有关更多信息,请参阅此文 http://htmlpad.wordpress.com/2010/02/12/tracking-touch-events-on-the-ipad/

答案 1 :(得分:2)

您可能希望查看jQuery Touchable/Hoverable plugin,它将触摸和鼠标事件(可触摸)和悬停事件(可悬停)统一在不同的平台上,如台式机和带触摸屏的移动设备。