Element UI中el-tree 添加右键菜单的方法,附带问题和解决方案

这篇具有很好参考价值的文章主要介绍了Element UI中el-tree 添加右键菜单的方法,附带问题和解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、在el-tree 中添加方法 @node-contextmenu="rightClick"

   <el-tree :data="data" 
:props="defaultProps"
 @node-contextmenu="rightClick" 
@node-click="treeNodeClick">
</el-tree>

2、建立一个右键组件,可以使用 el-menu 组件,优点是,可以借助el-menu 的 selec方法进行增删改查以及样式不用手写了,弊端是不容易获取点击的Dom,先暂时这样写吧

          <!-- 树形控件右键组件 -->
          <div v-show="menuShow" class="tree_rightmenu" :style="{ ...rightMenu }">
            
              <el-menu class="el-menu-vertical-demo" @select="selectMenuNode" >

                <el-menu-item id="menuitem" index="1" style="font-size: 12px;">
                  <span slot="title">新增课时</span>
                </el-menu-item>
                <el-menu-item index="2" style="font-size: 12px;">
                  <span slot="title">删 除</span>
                </el-menu-item>
              </el-menu>
          </div>

3、methods中的写法

  rightClick(e, data, node) {
      this.menuShow = false // 先把模态框关死,目的是 第二次或者第n次右键鼠标的时候 它默认的是true
      this.menuShow = true
      e.preventDefault() //关闭浏览器右键默认事件
      this.rightMenu = { top: e.pageY + 'px', left: e.pageX + 'px' }
      document.addEventListener('click',(ev)=>{
        // ev.stopImmediatePropagation()
        if(ev.target!==document.querySelector('.el-menu-item.is-active')){ 
          this.foo() 
        }
      })

    },
    foo() {
      // 取消鼠标监听事件 菜单栏
      this.menuShow = false
      document.removeEventListener('click', this.foo) // 关掉监听,
    },

3、点击树状节点时,关闭右键组件

  treeNodeClick(){
      this.foo() 
    },

4、css样式

.tree_rightmenu {
  position: fixed;
  width: 120px;
  border: 1px solid rgba(0, 0, 0, 0.15);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
  z-index: 1000;
}

5、最终效果

el-tree 右键菜单,element,vue,右键菜单,vue.js,elementui,javascript

存在问题:在右键弹出的组件中,点击右键,会默认弹出浏览器的右键菜单栏;

想到的解决办法是,点击该节点时,使用原生js的 contextmenu 事件,在事件中用 e.preventDefault()方法进行阻止

最后建议使用vue右键插件 vue-contextmenujs文章来源地址https://www.toymoban.com/news/detail-756055.html

到了这里,关于Element UI中el-tree 添加右键菜单的方法,附带问题和解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【element ui】el-tree拖拽增加样式效果

    el-tree的可拖拽效果太不明显,产品需要添加可拖拽的效果,弄了个阴影。 项目需求是只能同级拖拽,无法跨级拖拽。点击层级的切换顺序的按钮,出现拖拽效果。 css代码必须去掉scoped才能实现

    2024年02月12日
    浏览(32)
  • element-ui树形控件el-tree详解

    概述 这里我利用element-ui开发一个vue的树形组件 引入element-ui 安装element-plus 安装按需导入 修改vite.config.js配置按需加载 tree树形控件详解 属性名 说明 类型 可选值 默认值 data 展示数据 array — — empty-text 内容为空的时候展示的文本 string — — node-key 每个树节点用来作为唯一标

    2024年02月07日
    浏览(38)
  • [element-ui] el-tree 懒加载load

    懒加载:点击节点时才进行该层数据的获取。 注意:使用了懒加载之后,一般情况下就可以不用绑定:data。 懒加载—由于在点击节点时才进行该层数据的获取,默认情况下 Tree 无法预知某个节点是否为叶子节点,所以会为每个节点添加一个下拉按钮,如果节点没有下层数据,

    2024年02月11日
    浏览(40)
  • [element-ui] el-tree全部展开与收回

    参考: el-tree全部展开与收回

    2024年02月10日
    浏览(32)
  • vue2+element-ui el-tree树形控件封装

    1.封装 根据官网配置项封装了下el-tree 方便维护和复用,有用的话点赞收藏叭~ 2.使用 如若要对不同的一级二级节点设置不同的样式可以参考这样:

    2024年02月12日
    浏览(40)
  • element ui el-tree控制树形结构全选、取消全选,展开收起

    控制树形结构全选、取消全选,展开收起   

    2024年02月11日
    浏览(41)
  • element-ui el-tree 设置指定级别节点显示复选框el-checkbox

            /deep/ .el-tree {         padding-top: 15px;         padding-left: 10px;         // 不可全选样式         .el-tree-node {           .is-leaf + .el-checkbox .el-checkbox__inner {             display: inline-block;           }           .el-checkbox .el-checkbox__inner {             display: none;    

    2023年04月08日
    浏览(38)
  • Element-UI实现的下拉搜索树组件(el-select、el-input、el-tree组合使用)

    1、子组件封装 注意使用:正常使用 // 子组件使用 父组件调用

    2024年02月11日
    浏览(63)
  • 【前端】- 在使用Element UI 的el-tree组件时,从底层去研究如何去实现一键展开/关闭【tree节点】的功能

    点击前效果: 点击后效果: 页面部分:这里是简单的数结构渲染,不多讲,$refs.Reftree获取的是el-tree的实例,具体作用请看下面的方法。 方法部分:该方法传入el-tree实例,直接点击按钮即可实现展开或者关闭,这里简单讲解一下 1、ref.store.root.childNodes 通过实例来调用tree组

    2024年04月16日
    浏览(41)
  • 解决element ui中的el-tree组件default-checked-keys默认勾选节点问题

    选中子节点的时候,父节点必须被选中,但是仅展示被选中父节点和子节点 方法1 html部分代码: 当需要动态改变树形结构的默认勾选值(例如每条数据都需要调接口查询,根据查询结果渲染树的选中情况)时,只修改defaultChecked的时,值的改变没有渲染相应的树节点,需要通

    2024年04月25日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包