jQuery slideUp 无法在移动设备上运行

Posted

技术标签:

【中文标题】jQuery slideUp 无法在移动设备上运行【英文标题】:jQuery slideUp not working on mobile devices 【发布时间】:2015-06-23 21:02:08 【问题描述】:

我有一个运行 Flatsome 主题的 Wordpress 网站,其中有一些带有使用 Custom Sidebar plugin 创建的侧边栏的页面,这些页面没有显示在菜单悬停上。我尝试使用下面的 jQuery 代码修复该故障

<script>
jQuery(document).ready(function () 

    jQuery(".widget_nav_menu .menu-item-has-children").hover(
        function () 
            jQuery('ul.sub-menu', this).slideDown('medium');
        , 

        function () 
                jQuery('ul.sub-menu', this).slideUp('medium');
        
    );

);
</script>

在任何计算机浏览器上都可以正常工作,但在移动设备(iPhone 和 iPad)上却不行,我不知道是什么原因造成的。

【问题讨论】:

移动设备?像他们所有人一样?请指定,因为我知道它适用于某些 ;) 因为移动设备不支持悬停。 @COOOL iPhone 和 iPad(已添加到帖子中) 【参考方案1】:

您不能在移动设备上悬停

jQuery(".widget_nav_menu .menu-item-has-children").hover( // change

在移动设备上以不同方式触发上述方法,例如使用 double tap。 hold

..或mousedown / mouse leave.


移动友好修改示例: (未经测试,但希望你明白,失败的不是.slideDown,而是.hover

jQuery(document).ready(function () 

    jQuery(".widget_nav_menu .menu-item-has-children").mouseout(function()
        function () 
            jQuery('ul.sub-menu', this).slideDown('medium');
        , 

        function () 
                jQuery('ul.sub-menu', this).slideUp('medium');
        
    );

);

您的第二部分问题可能是 -- 如何维护 desktop 上的.hover 触发器并触发移动设备,正如我在only 移动设备上的建议

【讨论】:

你不能在手机上测试悬停,考虑一下 语法似乎有问题(鼠标移出后的函数)

以上是关于jQuery slideUp 无法在移动设备上运行的主要内容,如果未能解决你的问题,请参考以下文章

jQuery toggleClass 在移动设备上无法正常工作

简单的移动jQuery下拉菜单无法在移动设备上运行

仅在桌面站点上执行 jQuery - 不要在移动设备上执行 jQuery [重复]

Jquery:下拉菜单在移动设备上无法正常工作

在移动设备上使用可排序的触摸事件 + jquery-ui 无法按预期工作

要求属性在移动设备上不起作用