Клонирование HTMLElements с помощью jQuery завершается неудачно - PullRequest
1 голос
/ 10 июня 2011

У меня проблема с jQuery и .clone(true, true). Взгляните на эту jsFiddle .

Проблема в том, что когда я клонирую объект (используя .clone(true, true) - deep: data и events), события работают, но применяют все функции к исходному объекту (объект модели).

Все будет понятно после прочтения кода.

Пока и спасибо за любую помощь:)

1 Ответ

2 голосов
/ 10 июня 2011

Я полагаю, что проблема заключается в широком использовании exampleVariable = $(this).

Когда вы используете переменную вместо явного использования $(this), вы не используете текущий $(this), если это имеет смысл.

Я внес некоторые изменения: (скрипка здесь: http://jsfiddle.net/PGM6W/)

        // On click on more, append a new model
        // Will update table buttons too
        // THIS WORKS FINE, except if I click on remove and click on this two times (try it)
        selfRow.find('a.more').click(function(){
            $(this).parents("table").append(model.clone(true, true));
            updateModel(selfTable);
        });

        // On click on remove, will remove current row
        // Will update table buttons too
        // THIS NOT WORKS FINE, and broke the a.more event!
        selfRow.find('a.remove').click(function(){
            $(this).remove();
            updateModel(selfTable);
        });
...