ugrás a tartalomhoz

jQuery remove()

Burnee · 2011. Szep. 30. (P), 13.11
Heyho!

Vázolom gyorsan:

var cucli = $('#myCucli');
cucli.click(function(){$(this).toggleClass('cicli')});
cucli.remove();
// ...
cucli.appendTo('body'); // és itt már nincs meg az eseménykezelő
Hogyan lehet ezt a problémát megoldani, ha a DOM-ból mindenképpen ki kell törölni az elemet egy időre?

Köszi!

-----------------------
update:
Ahogy az szokott lenni, csak le kellett írnom a problémámat és azonnal eszembe is jutott a megoldás. Leírom, hátha másnak is van hasonló baja.

var cucli = $('#myCucli');
cucli.click(function(){$(this).toggleClass('cicli')});
var temp = cucli.clone(true);
cucli.remove();
cucli = temp;
// ...
cucli.appendTo('body');
 
1

detach

dyuri · 2011. Szep. 30. (P), 13.19
cucli.detach();
2

naja

Burnee · 2011. Szep. 30. (P), 13.25
naja...
és ott figyel a remove() leírásánál is az első bekezdésben...

köszi!
3

Miért kell eltávolítani

Poetro · 2011. Szep. 30. (P), 15.48
Egyáltalán miért kell eltávolítani? Mert ha simán hozzáraknád a body-hoz, akkor nem is kell eltávolítani.
var cucli = $('#myCucli');  
cucli.click(function(){$(this).toggleClass('cicli')});  
//...
cucli.appendTo(document.body);
4

el kell

Burnee · 2011. Okt. 11. (K), 08.45
El kellett távolítani. Azért, mert esetünkben a wicket nem szereti, ha ugyanaz az interaktív elem duplikálva szerepel. Valamint az eseménykezelői, illetve az őt célzó eseménykezelők is problémát jelenthettek volna.

Ja és kifelejtettem, hogy a "//..." részben mi ennek az elemnek a klónját használtuk máshol

A detach mindenesetre tökéletes megoldás volt.