Я хочу показать contextmenu
элемента (как при нажатии правой кнопки мыши) после 1 с задержки. Что я сделал до сих пор:
1) Попытка задержать выполнение обратного вызова с обещаниями - не работает, 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>