我希望能够:
目前,将.clone方法设置为clone(),可以拖动克隆的draggable,但可以理解的是,克隆不保留初始draggable中的数据。
如果使用clone(true),则克隆的draggable将保留初始可拖动数据,但不能拖动。
var dropped = jQuery(ui.draggable).clone().addClass("dropped").draggable(); //No data
var dropped = jQuery(ui.draggable).clone(true).addClass("dropped").draggable(); //Not draggable
有人会有任何想法可能是什么问题?任何帮助是极大的赞赏。这是我一直在研究的jsFiddle - http://jsfiddle.net/wc71z5to/
答案 0 :(得分:1)
如果您能够更新到稍后版本的jQuery(我在JSFiddle中使用19.2。),您可以使用委派事件进行点击,而不用担心使用深度克隆。
http://jsfiddle.net/TrueBlueAussie/wc71z5to/2/
jQuery(document).on('click', '.component', function() {
alert($( this ).data( 'name' ));
});
从示例中可以看出,您需要从克隆中保留行为方式。如果您能澄清我将尽力确保满足您的需求:)
委托事件通过侦听冒泡到不变的祖先的事件来工作。如果没有方便/接近的话,document
是默认值。它然后将jQuery选择器应用于bubble链中的元素。 然后为导致事件的任何匹配元素调用函数。这意味着元素在事件时间之前不必匹配,而不是在创建事件处理程序时匹配。
注意:请勿将'body'
用于委派事件,因为样式可能会导致body
高度为0,并且可能不会发生事件!始终使用document
作为后备。