原生Js右键菜单,点击页面其他位置的时候,隐藏菜单
时间: 2024-03-15 08:46:05 浏览: 15
你可以使用`addEventListener`方法为`window`对象添加`click`事件监听器,当用户点击页面其他位置时,隐藏右键菜单。这里的思路是在右键菜单显示时,为`window`对象添加一个`click`事件监听器,当用户点击页面其他位置时,就隐藏菜单,同时移除该`click`事件监听器,以免影响后续的点击事件。以下是示例代码:
```
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);
```
在上面的代码中,`showContextMenu`函数用于显示右键菜单,它会阻止默认的右键菜单弹出,并将右键菜单元素的`display`属性设置为`block`。然后,在`window`对象上添加一个`click`事件监听器,以便在用户点击页面其他位置时,隐藏右键菜单。
`hideContextMenu`函数用于隐藏右键菜单,它会将右键菜单元素的`display`属性设置为`none`,并从`window`对象上移除`click`事件监听器。
最后,使用`document.addEventListener`方法为需要显示右键菜单的元素添加`contextmenu`事件监听器,当用户在该元素上右键点击时,就会触发`showContextMenu`函数,显示右键菜单。