Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JQuery在移动设备上触发单击事件_Javascript_Jquery_Jquery Mobile_Sidr - Fatal编程技术网

Javascript 使用JQuery在移动设备上触发单击事件

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(){ $(

当在移动设备上查看时,我使用Sidr插件将侧菜单添加到我的站点。当用户单击其中一个侧菜单项时,我希望该菜单关闭,然后向下移动到他们选择的项目。从本质上说,它是一个美化的内部链接菜单,包含大量指向具有ID的内容的哈希链接

以下是我目前的代码:

    $(".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" );