详解elementUI中的el-switch开关组件
·
在element ui中el-switch开关组件具有先改变开关值再传值的特点。(先改后传)
比如:
<el-switch v-model="scope.row.open" :active-value="1" :inactive-value="0" @change="handleTuningMode1(scope.row)"></el-switch>
如果此时开关是开着的,也就是说open值是"1",那么当我们触发change事件的时候,传过去的open值是关闭的“0”值。
elementUI switch组件:
- 无click事件,想要二次确认后再进行状态更改;
- 使用change事件会先更新状态再传值,不好用;
解决办法
- 添加@click.native.prevent方法
给vue组件绑定事件时候,必须加上native ,否则会认为监听的是来自Item组件自定义的事件;
prevent 是用来阻止默认的 ,相当于原生的event.preventDefault(); - 与此同时需要打开disabled属性
是因为不加disabled会出现调用两次的非理想状态
<el-switch v-model="scope.row.open" :active-value="1" :inactive-value="0" @click.native.prevent="handleTuningMode(scope.row)" disabled></el-switch>
disabled样式问题
在设置disabled后开关会有鼠标禁用的样式及透明度的变化,我们需要做修改;
<style>
/* 修改elementUI-switch组件 disabled样式 */
.el-switch.is-disabled {
opacity: 1;
}
.el-switch.is-disabled .el-switch__core, .el-switch.is-disabled .el-switch__label {
cursor: pointer !important;
}
</style>
不建议在写有scoped的style标签里修改,是因为scoped表示它的样式作用于当下的模块,很好的实现了样式私有化的目的
<style lang="less" scoped>
</style>
更多推荐
已为社区贡献6条内容
所有评论(0)