【问题标题】:Dijit tree text itself is not selectable/highlightable?Dijit 树文本本身不可选择/高亮显示?
【发布时间】:2013-07-11 14:57:20
【问题描述】:

我有一个 dijit 树,我希望能够选择或突出显示树节点中的文本,以便可以复制/粘贴它们。 Dojo 有一些树的例子here. 所有这些都说明了我的问题。

另外,这里有一个JSFiddle 和一个dijit/tree 来演示这个问题。

如果您加载任何示例,您会注意到您无法拖动鼠标来突出显示树文本。

我尝试更改传递给 Dojo 的 HTML,但看起来它放在节点中的任何内容都无法选择,我不确定该怎么做。似乎 Dojo 有它自己的 CSS 导致了这种情况。样式看起来很模糊,所以我不确定在哪里进行更改。

是否有我必须覆盖的特定 CSS 文件?或者我还能做些什么来自己编辑树节点?

【问题讨论】:

  • 我有一个部分答案,从进入 chrome devtools 并检查一些不可选择的文本,特别是它的事件侦听器。它说在 div#tree.dojoDndContainerOver.dijitTree.dijitTreeHover.dijitHover 上有一个 selectstart 侦听器,它安装在 dijit 内的 _dndContainer.js 中:github.com/dojo/dijit/blob/… Comment "// 取消文本选择和文本拖动"。如果我在 devtools 中删除它,则文本变为可选择的。不过,不知道如何阻止此处理程序或将其从程序中卸载。
  • 好的,这是一个真正适合我的解决方法:tree.dndController.events.splice(4,1)[0].remove();。换句话说,从 events 数组中删除索引 4 处的事件侦听器(您可以从上述 github 上的源代码中看到它被插入到该索引处),然后对其调用 remove() 。这使得文本可选择。现在希望专家能介入并告诉我们这样做的正确方法。
  • @DonHatch 感谢您的回复,对于迟到的回复感到抱歉。我在我链接的 JSFiddle 中尝试了你的代码。它对我不起作用。您在网上某个地方有工作示例吗?

标签: javascript css dojo dijit.tree


【解决方案1】:

我无法让您尝试提供建议,但您正在寻找的 CSS 是“用户选择”https://developer.mozilla.org/en-US/docs/Web/CSS/user-select 您应该将其应用于 treeNodes 的 css 类

【讨论】:

  • 您是否也无法从文档中获取任何树示例?
猜你喜欢
  • 2011-12-09
  • 1970-01-01
  • 1970-01-01
  • 2010-11-02
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
  • 2016-10-27
  • 1970-01-01
相关资源
最近更新 更多