我想实现右键功能,像qq这样,右键点击图片时,图片被选中,并通过css focus显示选中效果,如下图
我想通过模拟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'), 能先获取焦点,再显示右键,但是会报错
求大神们解救,万分感谢!
在“EventTarget”上执行“dispatchEvent”失败:第一个参数不是“Event”类型
e.target.dispatchEvent(e.target.createEvent( 'click' ))