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 [重复]