Javascript 使用JQuery在移动设备上触发单击事件
当在移动设备上查看时,我使用Sidr插件将侧菜单添加到我的站点。当用户单击其中一个侧菜单项时,我希望该菜单关闭,然后向下移动到他们选择的项目。从本质上说,它是一个美化的内部链接菜单,包含大量指向具有ID的内容的哈希链接 以下是我目前的代码:Javascript 使用JQuery在移动设备上触发单击事件,javascript,jquery,jquery-mobile,sidr,Javascript,Jquery,Jquery Mobile,Sidr,当在移动设备上查看时,我使用Sidr插件将侧菜单添加到我的站点。当用户单击其中一个侧菜单项时,我希望该菜单关闭,然后向下移动到他们选择的项目。从本质上说,它是一个美化的内部链接菜单,包含大量指向具有ID的内容的哈希链接 以下是我目前的代码: $(".mobile-nav button").sidr({source: ".sidr" }); $('.sidr nav ul').on('click', 'li a[href^="#"]', function(){ $(
$(".mobile-nav button").sidr({source: ".sidr" });
$('.sidr nav ul').on('click', 'li a[href^="#"]', function(){
$(".mobile-nav button").click();
var target = this.hash;
var $target = $(target);
$('html, body').stop().animate({
'scrollTop': $target.offset().top
}, 900, 'swing', function () {
window.location.hash = target;
});
return false;
});
当在400像素宽的桌面浏览器上查看时,它可以正常工作。但是在实际的移动设备上查看时,实际上关闭Sidr菜单的.click()不起作用
我相信这是因为你不能“点击”手机,但有人能想到我该如何解决这个问题吗?任何帮助都会很好
谢谢使用
单击touchstart
:
$('.sidr nav ul').on('click touchstart', 'li a[href^="#"]', function(){
//rest of your code
}
我在移动设备上的sidr也有类似的问题。最后 我曾经 而不是
$( "#sidr-0" ).trigger( "click" );
它成功了。这显然与移动设备上的文档就绪和移动浏览器使用ajax页面加载导致提前触发click()有关。我希望这有帮助。尝试点击
事件,而不是单击。。
$( "#sidr-0" ).trigger( "click" );