contenteditable 不适用于 cdkDrag

标签 contenteditable angular-cdk-drag-drop

我正在尝试使用 div 元素标签并使其表现为带有 css 的 textarea。

#textarea {
    -moz-appearance: textfield-multiline;   ------------ card.component.css
    -webkit-appearance: textarea;
    border: 1px solid gray;
    font: medium -moz-fixed;
    font: -webkit-small-control;
    height: 28px;
    overflow: auto;
    padding: 2px;
    resize: both;
    width: 400px;
}

<div id="textarea" contenteditable>I look like a textarea</div>  ---- card.component.html

但是我在我的卡片上从父组件(类别组件)使用 cdkDrag
<div cdkDrag class="col-sm-12 px-2 pb-2">
  <app-card (cardEvent)="deleteCard($event)" [card]="card">

我找到了这个链接 contenteditable not working properly with cdkDrag on google-chrome解释相同,但无法得到任何答案。

最佳答案

CDK的DragRefmousedown事件,因此您可以添加 (mousedown)="$event.stopPropagation()"您的处理程序 contenteditable div 以防止该事件冒泡到具有 cdkDrag 的元素关于它的指令。
编辑:这是 CDK 中的调用站点 DragRef代码:https://github.com/angular/components/blob/master/src/cdk/drag-drop/drag-ref.ts#L775

关于contenteditable 不适用于 cdkDrag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60943166/

相关文章:

angular - 使用 Angular CDK DRAG 丢失拖动元素上的旋转位置

html - contentEditable DIV 上的框大小以隐藏第一个和最后一个字符

javascript - 如果我对 contenteditable 项目执行 "jquery sortable",那么我将无法再将鼠标聚焦在 contenteditable 文本内的任何位置

javascript - Contenteditable 文本编辑器和光标位置

javascript - 停止单击取消选择的文本

javascript - contenteditable <div> 上下文菜单中的新元素

Angular 拖放绝对位置元素选择了错误的索引

angular - 使 Angular 对话框只能通过标题拖动