我有一个使用jquery的子导航-用户单击顶层列表项,例如触发下拉菜单的“服务”。通过单击“服务”链接可以切换下拉菜单。我做到了,以便用户可以单击屏幕上的任意位置以将下拉列表切换到关闭状态。但是,由于该站点具有响应能力,因此我希望用户能够单击(触摸)屏幕上的任何位置以关闭下拉菜单,但是我的问题是它无法在触摸设备上正常工作。
我的文档单击代码设置为:
$(document).click(function(event) { if ( $(".children").is(":visible")) { $("ul.children").slideUp('slow'); } });
我假设document.click可能无法在触摸设备上使用,如果不能,那么有什么解决方法可以达到相同的效果?
谢谢
要通过单击或触摸来触发功能,您可以更改此设置:
$(document).click( function () {
对此:
$(document).on('click touchstart', function () {
或这个:
$(document).on('click touch', function () {
该touchstart事件在元素被触摸时立即触发,该touch事件更像是“轻击”,即表面上的单个接触。您应该真正尝试每种方法,以找出最适合您的方法。在某些设备上,touch触发起来可能会有些困难(这可能是好事,也可能是坏事- 它阻止了阻力的计算,但是意外的阻力可能会导致其不被触发)。
touchstart
touch