Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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,防止单击在mobile上单击的元素下面的元素_Javascript_Jquery - Fatal编程技术网

javascript,防止单击在mobile上单击的元素下面的元素

javascript,防止单击在mobile上单击的元素下面的元素,javascript,jquery,Javascript,Jquery,我正在创建一个网站,有一个可扩展的侧导航栏。当用户在移动设备上扩展侧边栏时,会扩展页面的宽度。因此,此侧栏在右上角有一个关闭按钮 但是,在顶部导航栏上,注销按钮位于右上角。因此,如果用户长时间触摸手机上的侧边栏,也会触发其下方的注销按钮 顶栏: 扩展侧栏: javascript: $(文档).ready(函数(){ $(文档)。在('单击touchstart','菜单切换',函数()上{ $('.main menu').toggleClass('toggled')) }); }); 一旦用户

我正在创建一个网站,有一个可扩展的侧导航栏。当用户在移动设备上扩展侧边栏时,会扩展页面的宽度。因此,此侧栏在右上角有一个关闭按钮

但是,在顶部导航栏上,注销按钮位于右上角。因此,如果用户长时间触摸手机上的侧边栏,也会触发其下方的注销按钮

顶栏:

扩展侧栏:

javascript:

$(文档).ready(函数(){
$(文档)。在('单击touchstart','菜单切换',函数()上{
$('.main menu').toggleClass('toggled'))
});
});

一旦用户单击“关闭”按钮,您可以在短时间内暂时禁用注销按钮

大概是这样的:

$(document).ready(function () {
  $(document).on('click touchstart','.menu-toggle',function(event){

    //Instead of disabling by css, you could also use jquery method .prop('disabled',true)

    $('#logout-btn').css({
    "pointer-events": "none",
    "touch-action":"none"
   })
    $('.main-menu').toggleClass('toggled')
    event.stopPropagation();
    
    //I used delay, you could use setTimeout also.
    $('#logout-btn').delay(200).queue(function (next) { 
        $(this).css({
          "pointer-events": "auto",
          "touch-action":"auto"
        })
        next(); 
   });
  });
});

这将抛出
意外标记“;”“指针事件”:“无”错误地应为逗号。我非常感谢你,这很有效。