您的当前位置:首页正文

解决el-cascader在IE11浏览器中加载页面自动展开下拉框问题

2024-11-17 来源:个人技术集锦

问题

最近一朋友问了个兼容性问题就是,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
        } 
      },
    }
}
显示全文