HSdiana 2020-06-03
有时候由于需要实现点击出现下拉框,而点击空白处或除了目标区域之外而响应事件使得弹框消失,此文则与各位分享如何使用原生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>