【问题标题】:Firefox: contenteditable is not editable if it's nested inside draggable parentFirefox:如果 contenteditable 嵌套在可拖动的父级中,则它是不可编辑的
【发布时间】:2016-05-05 13:08:54
【问题描述】:

我有这个simple html

<div draggable=true>
  <div contenteditable=true>can't edit me</div>
</div>

在 Chrome 中,我可以编辑 contenteditable 的内容,但在 Firefox 和 IE 中我不能这样做。这是一些已知问题吗?为什么 Chrome 允许编辑?任何现有的解决方法?

【问题讨论】:

标签: javascript html google-chrome internet-explorer firefox


【解决方案1】:

问题是draggable 元素的点击处理与contenteditable 处理冲突 - 两者都需要您点击,那么应该使用哪个处理程序?

您可以采取多种选择。以下版本在点击时禁用draggable,以便用户专注于可编辑的内容,然后双击启用:

<div class="content">
  <span>Edit and drag me</span>
</div>

$(".content").draggable()
  .click(function() {
    $(this).draggable({ disabled: false });
}).dblclick(function() {
    $(this).draggable({ disabled: true });
});

另外,here 有一个很好的解决方案,它涉及通过使用 CSS 定位的类选择器将 draggablehandle 属性设置为外部元素。这可能是比修改点击事件更好的解决方案,但这取决于您的使用情况。

更新 我已经添加了我在上面链接到here 的解决方案的略微修改版本。您可以编辑文本以及通过手柄图标拖动整个内容。

【讨论】:

  • 谢谢,如果您针对我的情况展示它,我将不胜感激,因为它与您提供的链接中的有点不同
  • 我现在明白了,谢谢。它没有使用浏览器的本机可拖动功能。我想知道是否有任何方法可以使用本机功能实现类似的方法?
  • 我们正在使用angular dndlist 指令,所以那里也已经有类似的功能
猜你喜欢
  • 1970-01-01
  • 2021-09-11
  • 2016-06-19
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-23
相关资源
最近更新 更多