当你将鼠标悬停在某些东西上(并且悬停)时,我希望有一个函数。但是,我也希望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,使点击成为可能,以及徘徊。
必须有更好的方法吗?谢谢!
答案 0 :(得分:2)
iPad点击时触发触摸事件。一种选择是使用那些而不是单击,而不是传播到click事件(或使用全局变量来跟踪点击/触摸状态)
触摸工作就像点击一样。有关更多信息,请参阅此文 http://htmlpad.wordpress.com/2010/02/12/tracking-touch-events-on-the-ipad/答案 1 :(得分:2)
您可能希望查看jQuery Touchable/Hoverable plugin,它将触摸和鼠标事件(可触摸)和悬停事件(可悬停)统一在不同的平台上,如台式机和带触摸屏的移动设备。