0
点赞
收藏
分享

微信扫一扫

[element-plus] el-popover的虚拟触发


<el-button
    v-for="(button, index) in buttons"
    :key="button.id"
    ref="buttonRefs"
    @click="handleButtonClick(index)"
 
  >
    <!-- 遍历多个按钮 重点在buttonRefs里,此处需要定义数组 -->
    {{ button.label }}
  </el-button>
  <el-popover
    ref="popoverRef"
    :virtual-ref="buttonRef"
    :visible="hidePopover"
    title="With title"
    virtual-triggering
  >
    <div v-click-outside="onClickOutside">
        <span> popover content </span>
        <el-button link type="primary" @click="hidePopover = false">删除</el-button>
    </div>
  </el-popover>

// element-puls的方法,自定义指令,点击外部区域的处理
  import { ClickOutside as vClickOutside } from 'element-plus'
  // 数组形式
  const buttonRefs = ref([])
  // popover虚拟触发绑定的ref参数
  const buttonRef = ref()
  //popover的ref参数
  const popoverRef = ref()
  //控制popover显示与隐藏
  const hidePopover = ref(false)
  
  // 隐藏popover,用于点popover窗口外隐藏popover
  const onClickOutside = () => {
    hidePopover.value = false
  }
  // 显示popover
  const handleButtonClick = (data) => {
    // 重新赋值virtual-ref绑定的 ref参数
    buttonRef.value = buttonRefs.value[data]
    // 显示popover
    hidePopover.value = true
  }
  const buttons = [
    { id: 1, label: 'Button 1' },
    { id: 2, label: 'Button 2' },
    { id: 3, label: 'Button 3' },
  ]



参考:

el-popover的虚拟触发


举报

相关推荐

0 条评论