3

我想要一个包含用户输入 XML 的 contentEditable div。我将如何在每个节点上存储一组隐藏数据,即使在剪切/粘贴(即移动)之后也会持续存在?

我尝试在 XML 中嵌套一个隐藏元素,假设在剪切/粘贴期间该元素会被浏览器移动,但它会被删除。

可以选择为每个节点生成索引/哈希作为属性并将其与内存中的对象相关联,但出于可用性原因,我想避免这种情况。

这样做的目的是精简 XML 以使其更具可读性,而不是拥有大量属性。

4

1 回答 1

1

显然我没有做足够的测试。只要您为元素提供至少一个属性,并且您使用display:none. 我现在可以空了<span>在每个节点内有一个空元素,该元素可以在属性中存储散列,用于将节点与内存中的对象相关联。

添加到该元素的数据$('span').data()在剪切和粘贴后没有保留,但这是意料之中的,因为此时浏览器显然会创建一个新元素。

但是,我遇到了另一个问题。在节点中使用退格/删除有时会删除元素,这并不理想。我通过将元素绝对定位在页面外来解决了这个问题。它现在实际上表现得相当直观。如果您删除了包装它的 XML,该元素将被删除,否则它仍然存在。

请注意,我只在 Chrome (21) 中对此进行了测试,所以我不知道这是否适用于其他浏览器。如果有人可以分享更优雅的解决方案,请这样做。

于 2012-08-25T11:15:03.713 回答