第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jQuery clone()不克隆事件綁定,即使使用on()

jQuery clone()不克隆事件綁定,即使使用on()

喵喵時光機 2019-10-19 14:06:51
我創(chuàng)建了一系列用于移動Web應用程序的自定義jQuery事件。它們效果很好,并且已經(jīng)過測試。但是,我遇到了一個小問題,難以理解。我正在.clone()DOM中使用一些元素,其中包含一個按鈕。該按鈕綁定了一些自定義事件(這些事件使用綁定.on()),但是。不幸的是,當我使用jQuery時.clone(),未保留綁定,我必須再次添加它們。之前有沒有人遇到過這種情況,有人知道有可能解決此問題嗎?我以為使用.on()應該保留現(xiàn)在或將來存在的元素的綁定?
查看完整描述

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。


查看完整回答
反對 回復 2019-10-19
  • 2 回答
  • 0 關注
  • 1223 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號