vue-devui icon indicating copy to clipboard operation
vue-devui copied to clipboard

🐛 [Bug]: document 默认事件被阻止,导致color-picker无法打开

Open jxhhdx opened this issue 2 years ago • 5 comments

Version

v1.0.0-rc.11

Vue Version

3.2.29

Link to minimal reproduction

image color-pick无法使用

Step to reproduce

打卡color-picker组件,点击选择

What is expected

能够选择

What is actually happening

无法选择

Any additional comments (optional)

经过检查是发现是document默认事件被阻止,造成的影响 image 去掉e.stopPropagation();就可以正常使用 @xingyan95 这里不知道有没有更好的解决方法

jxhhdx avatar Aug 16 '22 15:08 jxhhdx

  1. 使用pointer-event指针事件可以暂时解决阻止默认click鼠标事件的问题 image

  2. 目前展示类似 popover 组件的逻辑都有问题 近期也会重构 colorpicker, 可能不会使用监听的方式来控制弹出层的显隐

ErKeLost avatar Aug 17 '22 14:08 ErKeLost

  1. 使用pointer-event指针事件可以暂时解决阻止默认click鼠标事件的问题 image
  2. 目前展示类似 popover 组件的逻辑都有问题 近期也会重构 colorpicker, 可能不会使用监听的方式来控制弹出层的显隐

嗯嗯,但是我觉得一个组件 取消掉 document 的默认事件有点不太合适。目前发现影响到了color-picker,但是其它组件、用户的代码也可能受到影响

jxhhdx avatar Aug 18 '22 02:08 jxhhdx

  1. 使用pointer-event指针事件可以暂时解决阻止默认click鼠标事件的问题 image
  2. 目前展示类似 popover 组件的逻辑都有问题 近期也会重构 colorpicker, 可能不会使用监听的方式来控制弹出层的显隐

嗯嗯,但是我觉得一个组件 取消掉 document 的默认事件有点不太合适。目前发现影响到了color-picker,但是其它组件、用户的代码也可能受到影响

嗯嗯 大部分都应该要重写

ErKeLost avatar Aug 18 '22 03:08 ErKeLost

我觉color-picker在window上监听事件,控制展开收起是不是不太合适,另一个dropdown在document上监听事件可能也不太合适,都要看下有没有更好的方案。 阻止默认事件是因为,类似drawer组件,在window上监听了事件,可以点击空白处关闭。如果在弹出类组件上不阻止事件冒泡,当在drawer中使用弹出类组件(比如select),并且点击弹出类组件的弹出面板时(比如选择了select下拉面板的某一项),drawer会一并关闭。大家看下有没有更好的解决方案~

xingyan95 avatar Aug 23 '22 07:08 xingyan95

近期将会重构color-picker, 到时候可以一起讨论一下

ErKeLost avatar Aug 23 '22 13:08 ErKeLost