【问题标题】:JQuery: Transferring Behaviors to Cloned ObjectsJQuery:将行为转移到克隆对象
【发布时间】:2010-12-12 15:13:15
【问题描述】:

我试图通过将 clone() 方法绑定到双击事件来快速复制一个类。到目前为止,我的代码是:

<style type="text/css">
.draggable { float:left; clear: both; }
</style>
<script type="text/javascript">
$(function() {
    copyit = function() {
        $(this).clone().appendTo("body").css('position','absolute').draggable();
    }
    $('.draggable').dblclick(copyit);
    $('.draggable').draggable();
});
</script>

<div class="draggable">Hi There!</div>
<div class="draggable">What's up?</div>

一切正常,除了我无法让克隆的元素在添加到 DOM 后自行克隆。非常感谢任何帮助。

【问题讨论】:

    标签: jquery cloning


    【解决方案1】:

    我的猜测是您没有将 dblclick 事件绑定到新的 DOM 节点。在这种情况下,您实际上有两种方法可以做到这一点:

    1. 您可以将 dblclick 设为实时(或委托)事件,如下所示: $('.draggable').live('dblclick', copyit); 看: http://api.jquery.com/live/ http://api.jquery.com/delegate/

    2. 您可以通过将对象的事件传递给 true 来使克隆复制对象的事件,如下所示: $(this).clone(true).appendTo("body").css('position','absolute').draggable(); 看: http://api.jquery.com/clone/

    【讨论】:

      【解决方案2】:

      使用.live() 设置双击处理程序:

      $('.draggable').live("dblclick", copyit);
      

      【讨论】:

      • $('.draggable').live("dblclick", copyit);完美运行。感谢您的帮助 Pointy 和 RTP Matt。
      猜你喜欢
      • 2011-01-20
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-07
      • 2015-09-23
      • 2021-04-29
      • 1970-01-01
      相关资源
      最近更新 更多