在contextmenu右键事件上js模拟触发click,希望通过click事件获取焦点

我想实现右键功能,像qq这样,右键点击图片时,图片被选中,并通过css focus显示选中效果,如下图

https://img3.mukewang.com/5c8f0eac00016e7802880270.jpg


我想通过模拟click事件去触发这个效果,使得window.selection有选中内容,css也能有选中样式,但不管我是用click(),还是用dispathEvent事件触发。实现效果都是,选择完右键菜单项后,图片才获取焦点。

我是vue实现的,我的代码是:


// img 标签绑定@contextmenu="rightHandler"

// methods

   rightHandler(e) {

    e.target.click()

    // 或者这个方法

    // e.target.dispatchEvent(new MouseEvent('click', { 'bubbles': true }))

    this.showMenu() // 其他一系列操作

    }

如果直接用dispathEvent('click'), 能先获取焦点,再显示右键,但是会报错

https://img1.mukewang.com/5c8f0eb000018da604440054.jpg

求大神们解救,万分感谢!


郎朗坤
浏览 1097回答 2
2回答

慕慕森

在“EventTarget”上执行“dispatchEvent”失败:第一个参数不是“Event”类型e.target.dispatchEvent(e.target.createEvent( 'click' ))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript