2 回答

TA貢獻1824條經(jīng)驗 獲得超5個贊
我認為您應該使用.clone()方法的重載:
$element.clone(true, true);
clone([withDataAndEvents] [,deepWithDataAndEvents])
withDataAndEvents:一個布爾值,指示是否應將事件處理程序和數(shù)據(jù)與元素一起復制。默認值為false。
deepWithDataAndEvents:一個布爾值,指示是否應復制克隆元素的所有子級的事件處理程序和數(shù)據(jù)。默認情況下,它的值與第一個參數(shù)的值匹配(默認為false)。
注意,.on()實際上不會將事件綁定到目標,而是綁定到要委派的元素。因此,如果您有:
$('#container').on('click', '.button', ...);
這些事件實際上綁定到#container。當發(fā)生單擊.button元素時,它會冒泡直到該#container元素。觸發(fā)事件的元素將根據(jù)的選擇器參數(shù)進行評估.on(),如果匹配,則執(zhí)行事件處理程序。這就是事件委托的工作方式。
如果克隆元素#container,則必須使用事件和數(shù)據(jù)進行深度克隆,.on()以保留要進行的綁定。
如果您.on()在的父項上使用,則沒有必要#container。
添加回答
舉報