移动端点击别的区域隐藏,兼容ios

点击按钮 出现下拉框,点击其他区域隐藏,刚开始是这样写的:

 $(document).bind('click',function(){
    $('#test').css('display','none');
  });

在ios不兼容,原因是在ios中document ,body没有click,所以没效果。
百度都推荐用touch事件,但是我不想用:
js:

/*阻止冒泡*/
function stopPropagation(e) {
    e = e || event;
    if (e.stopPropagation)
        e.stopPropagation();//停止冒泡  非ie
    else
        e.cancelBubble = true;//停止冒泡 ie
}
/*点击按钮,下拉区域显示或隐藏*/
function navIcon(e){
    $('.navBox').toggle(500);
    stopPropagation(e);
}
 /*点击别的地方下拉框消失*/
   /*app相当于body里面唯一的子元素*/
    document.getElementById("app").addEventListener('click',function (e) {
        var parent=$(e.target).parents('.navIcon');   //navIcon为按钮,触发下拉区域
        if(parent.length===0){
            console.log('不在弹层与按钮区');
            //操作此区域
            $('.navBox').hide(500);   //下拉框区域隐藏
       }else{
            console.log('按钮与弹层区')
        }
    });

在ios兼容 ,目前没有发现问题,欢迎前来讨论。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,836评论 4 61
  • 1.部署IIS需要注意首先IIS需要安装AspNetCoreModule注意:AspNetCoreModule版本...
    念旧的时光阅读 4,264评论 0 1
  • 你是我获取未来的一种方式 阳光落在万物表面 留下一层金粉 叫人忆起梦中黄金般的沉默 你的呼吸落在我的肌肤 留下一层...
    每日爱图阅读 3,607评论 1 2
  • 今天向昭力提出加入布莱恩学习群的想法,遭到拒绝。昭力的语气还是一如既往的认真。 竟然被拒绝了,的确是我始料未及。 ...
    海浪流云阅读 1,445评论 0 0
  • d近来总是遇见一些烦心事儿,导致这段时间以来一直处于混沌恍惚之中,无端地耗费着人生这点有限的时光。有一天,忽然发现...
    听说那个像我阅读 3,902评论 4 7

友情链接更多精彩内容