我需要在jQuery中对clone()
提供一些帮助。
所以,事情是这样的:我正在进行某种拖拽和放弃,它将适用于触摸设备。一切都很好,除了当我克隆一个元素时,事件消失了(拖动停止工作)。
代码看起来像这样(简化):
$('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
});
});
我做错了什么?
谢谢!
答案 0 :(得分:1)
由于DOM元素是一个(并且不会自动克隆),因此使用类似insertBefore
的函数将移动元素而不是复制它。如果你使用这个'技巧',你也不会遇到没有被克隆的事件的麻烦,因为它与所有绑定的元素完全相同。
所以你可以这样做:
this.addEventListener('touchend', function(e){
this.insertBefore( this.helper );
}); //ontouchend