el-tree添加draggable,input的内容不能用鼠标选中?

el-tree 添加draggable属性时,里面的input的内容不能用鼠标选中会优先触发拖动事件。请问各位大佬有没有好的解决方案。试过allow-drag,allow-drop都无效?求大佬指点

    <el-tree
      draggable
      filter=".nameInput el-input el-input--mini" 
      node-key="id"
      empty-text
      v-if="configList.length >= 1"
      v-loading="loading"
      element-loading-text="正在加载分类"
      :indent="INDENT"
      :data="configList"
      :props="defaultProps"
      :expand-on-click-node="false"
      :default-expanded-keys="expandedKeys"
      :allow-drag="allowDrag"
      :allow-drop="allowDrop"
      @node-expand="updateExpandedKeys"
      @node-collapse="updateExpandedKeys"
      @node-click="changeAddParentId"
      @node-drop="updateRemoteConfigLevel"
    ></el-tree>
阅读 6.3k
3 个回答

<input draggable="true" />就可以了

<input draggable="false">

新手上路,请多包涵
  1. 可以给数据加上isEditing字段,在allowDrag里判断它。isEditing另一个作用是提交时校验是否有正处于编辑状态的,当然,如果编辑是用模态框(弹框)做的就没什么必要加isEditing字段

    // return false表示不允许xxx节点进行拖拽
    allowDrag(draggingNode) {
      // 处于编辑状态的node不允许拖拽
      return !draggingNode.data.isEditing;
    },
  2. 如果单个node节点的内容比较多、元素还各种嵌套等等,用draggable="true"可能不太灵活。可以考虑用-webkit-user-drag和user-select来决定哪些元素拖拽和哪些元素内容可以选中,值根据自己的需求来选择。

    /* scss */
    xxx {
     cursor: default;
     -webkit-user-drag: element;
     div {
           cursor: text;
           user-select: text;
     }
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题