iPad悬停/单击问题

iPad hover/click issue

本文关键字:问题 单击 悬停 iPad      更新时间:2023-09-26

>我的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 次进行悬停/单击)

请帮我解决这个问题。

jQuery文档说$(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));
    }
)

让我知道这是否可行。

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