vue2项目el-table中嵌套el-dropdown, 下拉菜单事件不响应

最近在做项目改造,发现之前element-plus中正常使用el-dropdown,在element中没响应,查了官方文档了解到两个版本dropdown的事件不一样

下面分别看一下两个版本的写法

// Vue3里element-plus写法

<el-dropdown class="dropdown">
     <el-button type="primary" text>
         更多<el-icon><ArrowDown/></el-icon>
     </el-button>
  <template #dropdown>
     <el-dropdown-menu>
         <el-dropdown-item @click="deleteById(scope)">删除</el-dropdown-item>
         <el-dropdown-item @click="showRelease(scope)">发布</el-dropdown-item>
         <el-dropdown-item @click="cancel(scope)" disabled>撤销</el-dropdown-item>
     </el-dropdown-menu>
   </template>
</el-dropdown>

<script setup>
//js部分
const deleteById = (row) =>{
    console.log(row)
}
</script>
// Vue2中element写法,官方示例
<el-dropdown @command="handleCommand">
  <span class="el-dropdown-link">
    下拉菜单<i class="el-icon-arrow-down el-icon--right"></i>
  </span>
  <el-dropdown-menu slot="dropdown">
    <el-dropdown-item command="a">黄金糕</el-dropdown-item>
    <el-dropdown-item command="b">狮子头</el-dropdown-item>
    <el-dropdown-item command="c">螺蛳粉</el-dropdown-item>
    <el-dropdown-item command="d" disabled>双皮奶</el-dropdown-item>
    <el-dropdown-item command="e" divided>蚵仔煎</el-dropdown-item>
  </el-dropdown-menu>
</el-dropdown>

<script>
  export default {
    methods: {
      handleCommand(command) {
        this.$message('click on item ' + command);
      }
    }
  }
</script>

 在element中,使用common事件感觉有点绕弯子,所以我用了.native 修饰符的方式实现了下拉菜单的事件触发。

.native - 监听组件根元素的原生事件。
主要是给自定义的组件添加原生事件。

<el-dropdown class="dropdown">
    <el-button type="text">
        更多<i class="el-icon-arrow-down"></i>
    </el-button>
    <el-dropdown-menu slot="dropdown">
        <el-dropdown-item @click.native="deleteById(scope.row)">删除</el-dropdown-item>
        <el-dropdown-item @click.native="showRelease(scope.row)">发布</el-dropdown-item>
        <el-dropdown-item @click.native="cancel(scope.row)" disabled>撤销</el-dropdown-item>
    </el-dropdown-menu>
</el-dropdown>

<script>
//js事件就可以正常写啦
export default {
    methods:{
        deleteById(row){
            console.log(row)
        }
    }
}
</script>

喜欢的点个关注吧

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值