最近一朋友问了个兼容性问题就是,elementUI的el-cascader组件,当设置filterable属性后,在IE上会出现自动展开下拉框的问题。网上找了一些方法 感觉没什么效果,就想到一个取巧的方法。请看代码
<el-cascader
ref="cascader"
:options="options"
:props="props"
filterable
@visible-change="visibleChange"
collapse-tags
clearable>
</el-cascader>
export default {
name: 'SdtDetail',
components: {
SdtFooter,
PlusOrder,
SdtReplace,
inventedTable
},
data () {
return {
props: { multiple: true },
options: [{
value: 1,
label: '东南',
children: [{
value: 2,
label: '上海',
children: [
{ value: 3, label: '普陀' },
{ value: 4, label: '黄埔' },
{ value: 5, label: '徐汇' }
]
}, {
value: 7,
label: '江苏',
children: [
{ value: 8, label: '南京' },
{ value: 9, label: '苏州' },
{ value: 10, label: '无锡' }
]
}, {
value: 12,
label: '浙江',
children: [
{ value: 13, label: '杭州' },
{ value: 14, label: '宁波' },
{ value: 15, label: '嘉兴' }
]
}]
}, {
value: 17,
label: '西北',
children: [{
value: 18,
label: '陕西',
children: [
{ value: 19, label: '西安' },
{ value: 20, label: '延安' }
]
}, {
value: 21,
label: '新疆维吾尔自治区',
children: [
{ value: 22, label: '乌鲁木齐' },
{ value: 23, label: '克拉玛依' }
]
}]
}],
numfirst: 0
}
},
methods: {
isIE() { //ie?
if (!!window.ActiveXObject || "ActiveXObject" in window){
return true;
}else{
return false;
}
},
visibleChange(flag){ // 联机框展示影藏变化时触发方法
let isIE = this.isIE()
if (flag && this.numfirst ===0 && isIE ) { // 判断第一次且是的IE浏览器的情况下收回下拉框
this.$refs.selectLLLL.dropDownVisible = false
this.numfirst = 1
}
},
}
}
以上就是解决方案 如果有更好的方案 欢迎留言!