【问题标题】:Hover event for iPad SafariiPad Safari 的悬停事件
【发布时间】:2011-06-20 19:35:21
【问题描述】:

我有一个带有“主选项卡”的页面,其行为如下; 1.在这些悬停时,我显示“子标签” 2. 点击任何一个主标签,它会转到一个默认的子标签页。

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

现在这些在桌面浏览器上的行为符合预期。但是在 iPad 上,当用户单击任何主选项卡时,它总是会执行悬停方法,即显示子选项卡而不进入子选项卡页面(如桌面)

现在我同意,这是预期的 iPad 行为,因为没有鼠标光标可以跟踪悬停事件...

但是有什么方法可以更新代码,以便“仅适用于 iPad”它不会通过第一次单击的悬停方法而是执行单击事件并直接将用户带到默认子选项卡页面(即类似于桌面浏览器中的上述第 2 点)

请帮助我。谢谢。

【问题讨论】:

  • 看看 sencha touch :) 我会推荐它,它会让你大吃一惊,简单的谷歌搜索......
  • 我知道 Sencha touch...但是我不确定是否需要在此处包含 Sencha touch...我只需要覆盖 iPad 上的悬停行为..我的意思是这不能通过简单的 JS 更新来完成..
  • 尝试和 $.browser 来检测它的 ipad(不确定你是否可以但值得一试)和 $.fn.mouseover = function(){...} 所以你可以覆盖它.. .或者你可以看看jquery mobile?或 jquery touch :)
  • 嗯...我知道如何检测设备(台式机/iPad)..这不是问题..问题是我如何仅覆盖 iPad 的悬停行为..

标签: javascript jquery html css ipad


【解决方案1】:

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

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

【讨论】:

  • 非常感谢..唯一的问题是鼠标悬停处理程序将被删除...但是单击是否会自动执行,即用户被带到 href 目标,或者用户是否必须第二次单击点击行为..
  • 检查以找出答案。但我认为这应该不是问题。 Touchstart 会在其他任何操作之前调用,onclick 仅在用户从屏幕上松开手指后才会调用。
  • 其实并没有单独的“点击”处理程序...是通过 用户点击后跳转到下一页...
  • 我刚试过这个......悬停事件被覆盖......但是href没有到达它的目标......
猜你喜欢
  • 2018-04-28
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 2011-08-24
  • 1970-01-01
  • 2019-02-07
  • 2013-08-15
  • 1970-01-01
相关资源
最近更新 更多