【问题标题】:Question on CSS hover/mouseover in iPad关于 iPad 中 CSS 悬停/鼠标悬停的问题
【发布时间】:2011-07-27 20:38:45
【问题描述】:

假设一个页面上有 5 个子链接(具有 searchBySub 类)和 5 个相应的按钮..

现在这 5 个子链接具有以下类定义

#leftNav .searchBySub {...}
#leftNav  a.searchBySub:hover {...}
#leftNav  a.searchBySubClick {...}

现在我正在 iPad 上测试这个页面。 可以点击 5 个子链接中的任何一个,这会改变它的 CSS(当然,点击的链接显示为选定的颜色)

此外,如果我单击任何相应的按钮,它应该会显示带有所选颜色的相应链接...我通过单击此按钮上的单击事件来执行此操作;

$(".button1").live("click",function(){
            $("link1").click(); //This is not exact code (but written dynamically...anyways it simulates the first link click)
        });

还有一件事,我无法显示确切的代码,因为每次点击链接/按钮时通过 AJAX 调用刷新内容,这就是我使用 jQuery.live() 进行绑定的原因...

现在我的问题是,在 iPAD 上,当我通过按钮单击模拟单击时,假设 Button2,虽然当前选择了链接 1,但它会正确地将链接 2 显示为选定颜色.... 但由于某些原因,它在此模拟点击期间显示带有悬停状态的 link1...我不知道为什么会发生这种情况..

请帮助我。谢谢。

【问题讨论】:

    标签: javascript jquery css ipad mobile-safari


    【解决方案1】:

    您可能希望捕获 touchstart 事件并对其采取措施。对于没有鼠标的移动设备,当有人点击屏幕时,您会收到一系列事件:

    • touchstart
    • touchend
    • mousedown
    • mouseup
    • click

    mouse* 事件直到touchend 之后才会发生,这可能不是您想要的行为。查看Apple's mobile Safari event docs 了解更多信息:

    【讨论】:

    • 实际上我已经为 touchstart、click、mouseover 添加了 live() 处理程序...但仍然无法正常工作...基本上我想要的是在按钮时从链接中删除 :hover 状态被点击...
    • “悬停”的概念不适用于触控设备。没有悬停。使用鼠标时,鼠标指针悬停在某物上与您按下鼠标按钮时之间有清晰的界限。对于触摸设备,没有这样的区别。您要么触摸设备,要么没有。所以我的建议是不要在 CSS 中使用 :hover ,而是使用最符合您想要实现的事件的事件,无论是 touchstart、mousedown、click 等。
    • 好吧,我完全知道 iPad 上没有悬停概念......但我正试图在现有的桌面网络应用程序上实现这个东西(同样用于 ipad)并且出于某种原因它确实应用了 CSS 中定义的 :hover 状态...我正在寻找某种方式来覆盖它...请仔细阅读我的问题,您会知道我在寻找什么...
    • 如果您使用touchstart,如果您在touchend之前有任何touchmove,则应取消您的操作,以防止用户在滚动页面时意外触发。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 2012-07-14
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多