奇怪的行为:vue-multiselect 选项面板的显示导致按钮无法点击
Strange behavior: the displaying of vue-multiselect options panel cause a button unclickable
Codesandbox:https://codesandbox.io/s/vue-template-33327
重现步骤
- 点击 vue-multiselect 显示选项面板
- 选择几个选项
- 单击 'Unclickable Submit' 按钮
- 观察异常行为
如我们所见,'Unclickable Submit' 按钮不可点击。仅当 vue-multiselect 失去焦点时(选项面板消失后)才可点击
有人可能会说,选项面板的出现导致了按钮 'unclickable',但是,尽管选项面板仍然存在,'Clickable Submit' 按钮仍然 'clickable' .
其他人可能会这么说,因为 'Unclickable Submit' 按钮离开了它之前的位置,导致点击事件处理程序不起作用。这就说得通了。但是,我还创建了一个增加高度按钮,它会导致 div 增加其高度,以模拟按钮位置的变化。在这种情况下,'Unclickable Submit' 是 Clickable..strange!
另一个奇怪的事情是@mousedown 事件在 'Unclickable Submit' 按钮的情况下有效。但是,在这种情况下,表单没有提交。
那些奇怪的行为让我大吃一惊。我不知道是什么导致了这些行为。哪位知道怎么回事,求助!因为在一天结束时,我需要让 'Unclickable Submit' 按钮 Clickable.
更新 1
另一个问题,为什么 @mousedown
事件有效而 @click
事件无效?
更新 2
阻止按钮移动解决了这个问题,但是,是否可以使按钮在离开之前的位置后仍然可以点击?
答案比我想象的要简单,我只需要添加这一行:
@mousedown.prevent
遇到问题的任何按钮。虽然我不知道到底发生了什么。
Codesandbox:https://codesandbox.io/s/vue-template-33327
重现步骤
- 点击 vue-multiselect 显示选项面板
- 选择几个选项
- 单击 'Unclickable Submit' 按钮
- 观察异常行为
如我们所见,'Unclickable Submit' 按钮不可点击。仅当 vue-multiselect 失去焦点时(选项面板消失后)才可点击
有人可能会说,选项面板的出现导致了按钮 'unclickable',但是,尽管选项面板仍然存在,'Clickable Submit' 按钮仍然 'clickable' .
其他人可能会这么说,因为 'Unclickable Submit' 按钮离开了它之前的位置,导致点击事件处理程序不起作用。这就说得通了。但是,我还创建了一个增加高度按钮,它会导致 div 增加其高度,以模拟按钮位置的变化。在这种情况下,'Unclickable Submit' 是 Clickable..strange!
另一个奇怪的事情是@mousedown 事件在 'Unclickable Submit' 按钮的情况下有效。但是,在这种情况下,表单没有提交。
那些奇怪的行为让我大吃一惊。我不知道是什么导致了这些行为。哪位知道怎么回事,求助!因为在一天结束时,我需要让 'Unclickable Submit' 按钮 Clickable.
更新 1
另一个问题,为什么 @mousedown
事件有效而 @click
事件无效?
更新 2
阻止按钮移动解决了这个问题,但是,是否可以使按钮在离开之前的位置后仍然可以点击?
答案比我想象的要简单,我只需要添加这一行:
@mousedown.prevent
遇到问题的任何按钮。虽然我不知道到底发生了什么。