1

我需要一些关于clone()jQuery 的帮助。

所以,事情是这样的:我正在做一些可以在触摸设备上工作的拖放和排序。一切都很好,除了当我克隆一个元素时,事件消失了(拖动停止工作)。

代码看起来像这样(过度简化):

$('li', layers).each(function(){
    this.addEventListener('touchend', function(e){
        var cloned = $(this).clone( true, true ); // no events are cloned at all!
        cloned.insertBefore( this.helper ); 

    }); //ontouchend

    this.addEventListener('touchmove', function(e){
        // do some stuff with this.helper
    });
});

我做错了什么?

谢谢!

4

1 回答 1

1

由于 DOM 元素是一回事(并且不会自动克隆),因此使用类似的函数insertBefore将移动元素而不是复制它。如果你利用这个“技巧”,你也不会遇到不克隆事件的问题,因为它是所有绑定的相同元素。

所以你可以这样做:

this.addEventListener('touchend', function(e){
    this.insertBefore( this.helper ); 
}); //ontouchend
于 2011-08-17T11:23:45.333 回答