原生js实现点击目标区域外侧触发事件

Posted WindEyes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生js实现点击目标区域外侧触发事件相关的知识,希望对你有一定的参考价值。

有时候由于需要实现点击出现下拉框,而点击空白处或除了目标区域之外而响应事件使得弹框消失,此文则与各位分享如何使用原生js实现该需求
整个html文件献上(已封装)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .box{
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div class="box">
    </div>
</body>
<script>
	//封装
    function clickoutSide(nameClass,callback){
        // 全局注册点击事件
        document.onclick = function(e){
            //若点击元素为目标元素则返回
            if(e.target.className===nameClass) return  
            //否则执行回调函数
            callback()
    	}
    }
    clickoutSide(‘box‘,function(){
        console.log(‘点击了外部‘);

    })
</script>
</html>


以上是关于原生js实现点击目标区域外侧触发事件的主要内容,如果未能解决你的问题,请参考以下文章

原生js如何绑定a连接点击事件?

js原生模拟点击事件

js 原生事件委托

怎样使js中的onclick事件只触发一次,就是我点击了一次,再次点击的时候不让其再触发

怎样用js触发a标签的click事件

关于点击空白关闭弹窗的js写法推荐?