输入框获取焦点时我按键盘的下箭头,会触发我自己@keyup.down.native="keyUpDown"定义的事件,同时也会触发elementUI自带的事件,如何禁用elementUI的事件?
输入框获取焦点时我按键盘的下箭头,会触发我自己@keyup.down.native="keyUpDown"定义的事件,同时也会触发elementUI自带的事件,如何禁用elementUI的事件?
这样子绑定你的事件:
@keyup.down.native.capture.prevent ="keyUpDown"
在捕捉阶段停止事件传播, 这样子之后冒泡阶段的事件处理都不会进行了.
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
我翻了一下ElementUI关于
el-input-number
的源码,源码中直接绑定的是@keydown事件
由于Vue是在事件的冒泡阶段进行的处理,而非传播阶段,所以我认为直接用@的修饰符来进行处理是做不到的。
可以提供的解决方法有两个,一个是在down以后查看data,对change事件和down事件的结果都做记录,如果是down修改的,那么改回来。
第二种方法是自定义指令,在事件的传播阶段阻断事件