el-checkbox本身是没有click事件的,但是我们可以通过native的方式穿透下去,但是这样的话会有一个问题,我们先看下代码:

<el-checkbox v-model="checked" @click.native="onClick">备选项</el-checkbox>

如果你在onClick函数中进行输出,你会发现,click实际上运行了两次,native本身是将事件绑定给了组件的根元素,这就导致他会被子元素的click事件冒泡触发。

哪怕你加了stop也没有效果,因为stop只能防止根元素往上冒泡,并不能阻止他本身被冒泡触发。

如果这些都不能影响你的使用,那么你就可以添加click事件。

本人的意思还是使用组件自动的change事件来代替click。

change事件默认会将改变后的值作为参数传入,但是有时候,我们可能不单单需要一个被改变的值,但是如果设置的参数,就无法获取到change事件默认给的参数。

其实我们可以变个思路,我们直接把组件v-model绑定的值作为参数不就行了。

<el-checkbox v-model="checked" @change="test(checked,xxx)">备选项</el-checkbox>

由于change事件是值被改变后触发,所以checked永远是改变后的值,完全可以替代掉change的默认参数,并且位置可以随便变化,非常奈斯。

分类: vue 项目实战 标签: vueelementel-checkbox

评论

暂无评论数据

暂无评论数据

目录