原生Js右键菜单,点击页面其他位置的时候,隐藏菜单,页面其他位置有的已绑点击事件,点击时也要隐藏菜单
时间: 2024-03-15 18:46:12 浏览: 55
如果页面上的其他元素已经绑定了点击事件,而你想在点击这些元素时也隐藏右键菜单,可以将`hideContextMenu`函数绑定到这些元素的点击事件上,以便在点击这些元素时,同时隐藏右键菜单。以下是示例代码:
```
var contextMenu = document.querySelector('.context-menu'); // 获取右键菜单元素
function showContextMenu(event) {
event.preventDefault(); // 阻止默认的右键菜单弹出
contextMenu.style.display = 'block'; // 显示右键菜单
// 在window上添加click事件监听器
window.addEventListener('click', hideContextMenu);
}
function hideContextMenu() {
contextMenu.style.display = 'none'; // 隐藏右键菜单
// 移除window上的click事件监听器
window.removeEventListener('click', hideContextMenu);
}
// 给需要显示右键菜单的元素添加contextmenu事件监听器
document.addEventListener('contextmenu', showContextMenu);
// 获取页面其他元素
var otherElements = document.querySelectorAll('.other-element');
// 给页面其他元素绑定点击事件,以便在点击这些元素时隐藏右键菜单
for (var i = 0; i < otherElements.length; i++) {
otherElements[i].addEventListener('click', hideContextMenu);
}
```
上面的代码与之前的示例代码类似,只是新增了一个`for`循环,用于给页面上的其他元素绑定点击事件,并将`hideContextMenu`函数绑定到这些元素的点击事件上,以便在点击这些元素时,同时隐藏右键菜单。这样,当用户点击页面上的其他元素时,右键菜单会被隐藏。
阅读全文