点击任意处div隐藏

image.png

点击图标操作框出现,然后点击任意处操作框消失

 
  • // 点击事件 onclick(){ // 获取鼠标点击位置(只有一个时直接定位就好,我这里是在多个上面点击出现) var x = event.clientX; var y = event.clientY; // 判断条件根据实际返回的值自定义 // 如果在父节点点击传root,操作只有新建 // 如果在子节点点击传node,操作有新建、修改、删除(此处根据需求做判断 如父节点不给操作就直接return) if (treeNode.parentId) { this.showRMenu("root", x, y); } else { this.showRMenu("node", x, y); } }, // 显示操作目录框 showRMenu(type, x, y) { // type 判断是在子节点还是在父节点(根据需求调整,不需要可联系上面的方法去掉参数type) let rMenu = $("#rMenu"); $("#rMenu ul").show(); if (type=="root") { $("#m_del").hide(); $("#m_rename").hide(); } else { $("#m_del").show(); $("#m_rename").show().nextSibling; $("#m_add").show(); } // 给操作框设置定位 跟随鼠标点击位置 rMenu.css({"top":y+"px", "left":x+"px", "visibility":"visible"}); // 给body绑定事件 左击任意处操作框消失 $("body").bind("mousedown", this.onBodyMouseDown); }, // 隐藏操作目录框 hideRMenu() { let rMenu = $("#rMenu"); if (rMenu) rMenu.css({"visibility": "hidden"}); // 给body解绑事件 不影响其他点击事件的操作 jQuery("body").unbind("mousedown", this.onBodyMouseDown); }, onBodyMouseDown(event) { let rMenu = $("#rMenu"); if (!(event.target.id == "rMenu" || $(event.target).parents("#rMenu").length>0)) { rMenu.css({"visibility" : "hidden"}); } }

    你可能感兴趣的:(点击任意处div隐藏)