用jQuery克隆HTML元素很奇怪

时间:2011-06-10 18:10:58

标签: jquery events clone

我遇到了jQuery和.clone(true, true)的问题。看看 on this jsFiddle

问题是:当我克隆一个对象(使用.clone(true, true) - deep:data和events)时,事件可以工作,但是在原始对象(模型对象)上应用所有函数。

阅读代码后,所有人都会清楚。

再见,谢谢你的帮助:))

1 个答案:

答案 0 :(得分:2)

我认为问题在于您广泛使用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);
        });