Domanda

Sto cercando di clonare i componenti del modulo usando .clone () di JQuery (in realtà, sto clonando una raccolta di campi clonando l'elemento contenitore). Tutto ha funzionato bene tranne che il campo data, le caselle combinate non funzionano, anche la convalida per minLength, ecc. Non funziona.

A proposito, sto solo trasformando un vecchio campo modulo HTML in un campo ext js usando applyTo

È stato utile?

Soluzione

Il problema è che jQuery clone () non clona i gestori di eventi associato con elementi DOM. Ma anche se usi clone (vero), quello copia i gestori di eventi, non funziona ancora, perché anche tu è necessario clonare l'oggetto Ext sul lato JavaScript.

Devi davvero usare gli strumenti forniti da Ext per crearne molti controlli simili. Un buon inizio è creare componenti Ext personalizzati , che puoi quindi istanziare più facilmente più volte.

Altri suggerimenti

Per cominciare, puoi provare a usare

.clone(true) 

quindi tutti i gestori di eventi per un elemento vengono copiati. A parte questo, sospetto che Extjs faccia altre cose funky quando costruisce i suoi controlli, quindi questo è probabilmente solo il primo passo per farlo funzionare. Guardandosi rapidamente sui forum extjs non vedo molte informazioni sulla clonazione dei widget.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top