【问题标题】:is it possible to view one html element twice on the same page, or must I create a duplicate?是否可以在同一页面上查看一个 html 元素两次,或者我必须创建一个副本?
【发布时间】:2012-08-03 20:04:28
【问题描述】:

我正在创建一个网站,允许查看和编辑“edit-div”中的“src-div”内容。我没有直接编辑 src-div,因为它使用 css zoom 属性进行了缩略图。

我考虑过使用 knockout.js 将两个元素绑定到一个 observable。目前,我已经使用jquery .html() 函数实现了该功能:只需在'select'上将edit-div innerhtml设置为src-div innerhtml,并在对edit-div进行更改后反转该过程以更新src-div。

我想知道这里是否真的需要 2 个 div,或者是否有某种方法可以在一个页面上实际查看同一元素两次,所做的任何更改都会自动反映在两个“视图”中,从而无需复制 innerhtml属性在两个元素之间来回切换。

本质上,这就像一个镜面效果,没有翻转。

到目前为止我发现的最接近的是:

http://developer.apple.com/library/safari/#documentation/InternetWeb/Conceptual/SafariVisualEffectsProgGuide/Reflections/Reflections.html

感谢您提供执行此任务的任何推荐做法。

【问题讨论】:

  • 就像人类一样,DOM 元素在任何给定时间只能在一个地方.. 对于两个“你”,你需要一个克隆 :-)

标签: javascript html css


【解决方案1】:

(几乎)您在页面上看到的所有内容在 DOM 中都有对应项。 DOM 中的所有内容都被准确地渲染一次(除了伪类)。并且 DOM 中的每个节点只能有一个父节点(没有排除项)。

不幸的是,您必须克隆特定节点并对两者进行更改,因为当前 CSS 文档中没有复制和翻译机制。

【讨论】:

    【解决方案2】:

    如果您使用的是 jquery,您可以使用一个 div 并“克隆”它。您可以阅读此内容以获取更多信息。 http://api.jquery.com/clone/

    如果将 div 的类设置为相同的内容,则可以将更改传播到两者。然后您可以将 .addClass 应用到第二个 div 以应用“反射”效果(如果这是您的最终目标)。

    【讨论】:

    • 另外,对于 jQuery,同一个 jQuery 对象中可能有两个元素,例如elements = $(elm1).append(elm2);那么elements.attr(..)(等等)会同时影响它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多