2013-07-18 3 views
1

Я читаю документацию .clone() http://api.jquery.com/clone/, пытаясь узнать, как клонировать объекты для моего проекта ... У меня есть функция обработчика событий .click(), которая добавляет активное состояние в клонированный блок. Взгляните на эту скрипку, это имеет больше смысла.Клонирование с обработчиками событий с использованием deepWithDataAndEvents?

Fiddle:http://jsfiddle.net/KRg23/2/

Прямо сейчас это только в стадии бета-тестирования, в конце концов, я клонировать блок при нажатии кнопки (НЕ НА НАГРУЗКИ) .. но пока первые два бара кодируются по умолчанию , и последние два клонируются при загрузке, как я сказал, когда будет готов к производству, будет только один элемент, и он будет клонирован одним нажатием кнопки (только для заполнения)

Наконец, позвольте мне объяснить, зачем мне нужно для клонирования обработчика событий, в случае скрипки он не добавляет класс .active к .block по адресу .click() , Я предполагаю, что это не так, потому что, как говорится в документации, «Обычно обработчики событий, привязанные к исходному элементу, не копируются в клон. Необязательный параметр withDataAndEvents позволяет изменить это поведение,» я просто не вижу, где они объясняют withDataAndEvents ..

Fiddle:http://jsfiddle.net/KRg23/2/

+1

Вот рабочая скрипку: http://jsfiddle.net/ZmLKq/ Все, что я сделал изменения 'клон()' 'для клона (истина)' –

+0

Спасибо .. Это имеет смысл сейчас ... –

ответ

3

В документации сказал:

"withDataAndEvents (по умолчанию: false) Тип: булевое"

Значит, вы можете передать t rue или false как параметр .clone().

var clone = jQuery('#sortable .block').clone(true); 

Это будет клонировать элементы с привязкой к событиям.

Fiddle: http://jsfiddle.net/KRg23/3/

+0

Удивительный, 4 буквы, которые были именно :) Спасибо! –

+0

Спасибо за хорошее объяснение –