jQuery click fallback sans hover ipad

Posted

技术标签:

【中文标题】jQuery click fallback sans hover ipad【英文标题】: 【发布时间】:2011-08-15 00:01:06 【问题描述】:

我希望在您将鼠标悬停在某物上(和取消悬停)时调用一个函数。但是,我也希望没有悬停功能的 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,从而可以进行单击,以及悬停。

一定有更好的方法吗?谢谢!

【问题讨论】:

谢谢你。我实际上通过向 .hover 事件添加更多内容来解决我自己的问题: $('#deeper').hover(function() noHover=false;vbg = 1;deeperEd();,function() noHover=false ;vbg = 0;deeperEd();); 【参考方案1】:

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

触摸的工作原理很像点击。有关更多信息,请参阅这篇文章: http://htmlpad.wordpress.com/2010/02/12/tracking-touch-events-on-the-ipad/

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于jQuery click fallback sans hover ipad的主要内容,如果未能解决你的问题,请参考以下文章

jquery为啥触发多次click事件

jquery 动态添加的元素 绑定事件click失效

JQuery怎么不能触发click事件了

jQuery .click() .animate() 不工作

jquery click()方法 语法

jquery如何click事件时候 ,让某个函数暂停或终止?