JQuery: передача поведения клонированным объектам - PullRequest
2 голосов
/ 12 декабря 2010

Я пытаюсь быстро сделать копии класса, привязав метод clone () к событию doubleclick.Пока мой код:

<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.Любая помощь с благодарностью.

Ответы [ 2 ]

2 голосов
/ 12 декабря 2010

Я предполагаю, что вы не привязываете событие dblclick к новым узлам DOM.В этом случае у вас есть два способа сделать это:

  1. Вы можете сделать dblclick активным (или делегировать) событием, например так: $ ('. Draggable'). Live ('dblclick', copyit);см .: http://api.jquery.com/live/ http://api.jquery.com/delegate/

  2. Вы можете заставить клон копировать события объекта, передав ему значение true, например: $ (this) .clone (true) .appendTo.. ( "тело") CSS ( 'позиция', 'абсолютным') перетаскиваемым ();см .: http://api.jquery.com/clone/

1 голос
/ 12 декабря 2010

Настройте обработчик двойного щелчка с помощью .live():

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