element ui select下拉框分页(使用自定义指令完成)

src 目录下新建 directives 文件夹,该文件夹下新建 index.js(用于引入所有的自定义指令),以及其他自定义指令文件

index.js

export * from './selectdirective'

selectdirective.js (下拉框增加触底自定义指令)

export const loadmore = {
  inserted(el, binding) {
    const dom = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap'); // 获取下拉框元素
    dom.addEventListener('scroll', function () { // 监听元素触底
      const condition = this.scrollHeight - this.scrollTop <= this.clientHeight + 4; //加4是因为如果不加4不能触底
      if (condition) {
        binding.value();
      }
    });
  },
};

mian.js (全局引入所有的自定义指令)

import * as directives from '@/directives'
Object.keys(directives).forEach(key => {
  Vue.directive(key, directives[key])
})

上述是全局引入的自定义指令,也可单独在某一个文件中使用 directives 注册一个自定义指令

页面中使用 ( v-loadmore=“loadmore”)

<el-select
  v-model="group"
  v-loadmore="loadmore"
>
  <el-option
    v-for="item in options"
    :key="item.value"
    :label="item.label"
    :value="item.value"
  ></el-option>
</el-select>

  loadmore() {
	console.log("触底加载...")  
   },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值