javascript - 延迟打开上下文菜单
问题描述
我想contextmenu
在 1 秒延迟后显示元素(如按下鼠标右键时)。到目前为止我做了什么:
1) 尝试使用 promise 延迟回调的执行 - 不起作用,contextmenu
异步显示且与回调执行无关。
p.addEventListener('contextmenu', e => { // contextmenu is shown instantly
new Promise(resolve => setTimeout(resolve, 1000))
.then(() => console.log('1 s passed')) // shown in 1 s
})
<p id="p">Hello</p>
2)new Event
自己派人 -contextmenu
在这种情况下根本没有
enter code here
p.addEventListener('mousedown', e => {
const contextmenu = new MouseEvent('contextmenu')
setTimeout(() => p.dispatchEvent(contextmenu), 1000)
})
p.addEventListener('contextmenu', e => {
console.log('contextmenu event arrived') // message is shown in 1 s but no contextmenu
})
<p id="p">Hello</p>
解决方案
看看这个(https://swisnl.github.io/jQuery-contextMenu/demo.html)。实现上下文菜单的工具之一。这样,您就可以完全控制上下文菜单的行为。
推荐阅读
- specman - Specman e覆盖率:忽略的值出现在覆盖率统计中
- laravel - 没有表单和请求功能的 Laravel 上传
- c++ - 是什么取代了 asio::tcp::resolver::query?
- python - Pandas 绘图条顺序类别
- sql - Oracle DB 中复杂的 SELECT 语句
- html - 如何防止此导航栏崩溃?
- laravel - 如何在 Laravel 5.4 中组合模型和按模型排序两个数据
- reactjs - Webpack+SemanticUI+React:进程未定义
- python - 在散列中使用 .digest()?
- c++ - c ++ CreateThread非静态成员没有特定成员名称