【问题标题】:iPad hover/click issueiPad悬停/点击问题
【发布时间】:2012-06-11 10:21:24
【问题描述】:

我的 HTML 代码为;

<a href="someTarget.html" class="menuLink">Link</a>

现在之前的JS代码是;

$(".menuLink").mouseover(function(){
    //code for show() submenu
}


$(".menuLink").mouseout(function(){
    //code for hide() submenu
}

我正在 iPad 上对此进行测试,上面的代码在 iPad 上运行良好(即第一次点击时,它会触发悬停事件并显示子菜单,并且只有在下一次点击时才会触发点击事件或转到目标链接)

由于某种原因(向主菜单添加延迟),我不得不更新代码如下;

$this.hover(
    function(){ // over
        $this.data("timer", setTimeout(show, 500));
    },
    function(){ // out
        $this.data("timer", setTimeout(hide, 500));
    }
)

所以问题如下; 在第一次点击链接时,它会立即将用户带到目标 URL(而不是之前的 2 次点击以悬停/单击)

请帮我解决这个问题。

【问题讨论】:

    标签: javascript iphone ipad safari mobile-safari


    【解决方案1】:

    jQuery documentation 表示$(selector).hover(handlerIn, handlerOut) 只是使用$(selector).mouseenter(handlerIn).mouseleave(handlerOut) 的快捷方式。

    这意味着没有mouseover()/mouseout()事件绑定到对象,可能移动浏览器没有正确处理其他2个事件(即mouseenter()/mouseleave())。

    尝试将您的代码替换为:

    $this.mouseover(function(){ // over
            $this.data("timer", setTimeout(show, 500));
        }).mouseout(function(){ // out
            $this.data("timer", setTimeout(hide, 500));
        }
    )
    

    让我知道这是否有效。

    【讨论】:

    • 我尝试更新到 .mouseover 和 .mouseout...您显示的方式...但它仍然会在第一次点击时将我带到目标链接...
    • 这只是在 iPad 上点击一下,它带我到目标链接(我希望它发生在第二次点击...)
    【解决方案2】:

    移动设备不支持鼠标悬停事件,也不支持双击事件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      相关资源
      最近更新 更多