今天做项目时,用elementUI框架,需要下拉框隐藏时出发某个函数,用了visible-change这个函数,发现点击时会触发两次我自己定义的函数,看了下官网的解释 :下拉框出现/隐藏时触发 如果只想在下拉框隐藏时触发该怎么做呢?下面是解决办法:
官网定义:
Select Events
事件名称 |
说明 |
回调参数 |
change |
选中值发生变化时触发 |
目前的选中值 |
visible-change |
下拉框出现/隐藏时触发 |
出现则为 true,隐藏则为 false |
remove-tag |
多选模式下移除tag时触发 |
移除的tag值 |
clear |
可清空的单选模式下用户点击清空按钮时触发 |
— |
blur |
当 input 失去焦点时触发 |
(event: Event) |
focus |
当 input 获得焦点时触发 |
(event: Event) |
@visible-change 函数里面传递两个参数(第一个为回调参数,第二个为自己定义的参数)
前台页面:
<
el-select
v-model=
"AREACODE"
placeholder=
"请选择"
clearable @visible-change=
"changeValue1(
$event
,AREACODE)"
>
<
el-option
v-for=
"item in AreaOptions"
:key=
"item.AREACODE"
:label=
"item.NAME"
:value=
"item.AREACODE"
>
</
el-option
>
</
el-select
>
JS:
changeValue1:function(callback,vc){ //只有回调参数为false时才触发 ctx.getAreaListDataSearch(vc,1)这个函数;
console.log("回调参数"+callback);
if(!callback){
var ctx = this;
ctx.AREACODE2='请选择';
if(vc!=""){
ctx.show2 = true;
ctx.getAreaListDataSearch(vc,1);
}
}
},
这样就解决了这个函数会默认调用两次你自己定义函数的问题