2011-06-20 59 views
0

我有一个带有“主标签”的页面,其行为如下: 1.将鼠标悬停时,显示“子选项卡” 2.单击任何主选项卡时,它将转到其中一个默认子选项卡页面。iPad Safari的悬停事件

$(".mainlink_href").mouseover(function(){...} 

现在这些在桌面浏览器上的行为与预期相同。但在iPad上,当用户点击任何主选项卡时,它始终执行悬停方法执行,即显示子选项卡并且不进入子选项卡页面(如在桌面中)

现在我同意,这是根据预期的iPad的行为,因为没有鼠标光标追踪悬停事件,否则...

但有没有什么办法,我可以更新代码,使“只为iPad”,它没有通过第一次点击的悬停方法,而不是点击事件,并直接将用户带到默认的子标签页(即类似于桌面浏览器上面的第2点)

请帮助我。谢谢。

+0

直视煎茶触摸:)我推荐它,它会打击你了,简单的谷歌搜索... – Val

+0

以及我知道煎茶触摸的......但是我不知道是否有需要在这里包含Sencha触摸...我只需要重写iPad上的悬停行为。我的意思是不能用简单的JS更新完成.. – testndtv

+0

尝试和$ .browser来检测它的ipad(不是肯定你可以,但值得一试)和$ .fn.mouseover =功能(){...}所以你可以覆盖它...或者你可以看看jQuery的移动?或jQuery的触摸:) – Val

回答

1

您可以只分配两个事件处理程序,并让ontouchstart处理程序删除onmouseover处理程序。

$(".mainlink_href").mouseover(function(){...}); 
$(".mainlink_href").ontouchstart(function(){this.mouseover=function(){};}); 
+0

Thx很多..唯一的问题是,当鼠标悬停处理程序将被删除...但会自动执行点击,即用户被带到href目标或用户必须点击第二次点击行为。 – testndtv

+0

检查找出。但我认为这不应该是一个问题。在其他任何事情之前调用Touchstart,并且仅在用户从屏幕释放手指后才调用onclick。 – Gerben

+0

实际上没有单独的“点击”处理程序......它是通过用户被带到下一页点击.. – testndtv