使用场景:在选择一段文字之后,点击某一个按钮,要求选区不消失
一开始我使用click.stop倒是可以满足需求,但是后来,在一个el-popover上点击按钮就不行了,设置了阻止事件冒泡和阻止默认事件,选区依旧会消失。
解决办法:
- 第一步:设置点击的按钮 user-select: none,如果还不好使的话,
- 第二步:不要在click事件上面使用stop.prevent,要在mousedown事件上使用,因为mousedown事件会在click事件之前触发!总之以后有关于选区(window.getSelection)的问题,可以考虑一下操纵mousedown事件
mousedown 事件当鼠标指针移动到元素上方,并按下鼠标按键时触发
实际上,在这个例子中,只需要设置阻止默认事件prevent就可以了,但是很多情况下,我们会将stop和prevent都一起写上,有备无患!
注意!这里面只是解决选区消失的问题,使用mousedown,真正触发事件还是需要用click的,可千万别误解了!