element-ui的输入框,绑定了@click和@clear事件,但是现在只想要在点击输入框的清空按钮的时候执行@clear事件,不执行@click事件。这个要怎么做到呢?
现在的bug时点击清空按钮,@clear和@click都会执行。
把点击事件换成focu或biur事件,至于清除使用自带的clearable属性
用clearable这个属性
<el-input
placeholder="请输入内容"
v-model="input"
clearable>
</el-input>
<script>
export default {
data() {
return {
input: ''
}
}
}
</script>
三种方法:
1、在click事件中判断一下事件源,也就是target是什么,来自于clear按钮的事件,就退出程序
2、设置一个变量,在clear事件中设置为true,在click事件中判断这个变量是不是true,从而判断是不是从clear事件过来的,然后退出程序,需要注意同时把它设置为false,否则会阻止正常的点击事件
3、使用自定义模板自定义清空按钮,在清空按钮的点击事件上增加stop事件修饰符