ugrás a tartalomhoz

reCaptcha modal windowban

kifli · 2014. Ápr. 21. (H), 00.53
Sziasztok, a következő probléma megoldásához kérnék egy kis segítséget.

Az oldalon amit fejlesztek a regisztráció egy modal windowban történik. Hozzáadtam egy reCaptcha-t a formhoz, aminek sajnos nem működnek a gombjai(new challenge, audio, help). A probléma amiatt jelentkezik, hogy a modal window-t úgy rakom ki, hogy server oldalon legenerálom a tartalmat, majd a "regisztráció" gombra kattintáskor először klónozom, majd a klónt a megfelelő helyre illesztem a DOM-ba. A gombokra illesztett eseménykezelők azonban nem klónozódnak, így amikor a fent említett 3 gomb bármelyikére kattintok, semmi nem történik.

A clone() metódust (true,true) paraméterekkel hívom meg, így elvileg az eseménykezelők is klónozásra kellene, hogy kerüljenek.
		
		$('.reg').on('click',function(){
			var overlay = $(' <div class=\"overlay\"></div>');
			$('body').append(overlay);
			var modal = $(' <div class=\"window-reg\"></div>');
			$(modal).clone().appendTo('body');
			$('.registerdiv').clone(true, true).appendTo('.window-reg').css('display','block');	
		});
Az előre generált form a captcha-val a ".registerdiv" ben található.

Köszi előre is.
 
1

Clone

janoszen · 2014. Ápr. 21. (H), 09.16
Ha jol tudom, a clone az event handlereket nem klonozza le. Ergo a ReCaptcha-t es barmilyen event handlert igenylo form elemet kulon kellene hozzarakni a modal window-hoz.
2

Miért?

Poetro · 2014. Ápr. 21. (H), 09.38
Miért kell egyáltalán klónozni? Miért nem használod az eredeti elemeket? Egyszerűen oda vissza kellene mozgatni őket a DOM-ban. Ez sokkal gyorsabb és megbízhatóbb is, mint a klónozás (főleg, ha van egyedi ID-vel rendelkező elem a klónozottak között).

Egyébként a clone tényleg képes másolni az eseménykezelőket, de csak akkor, ha azok is jQuery-vel lettek felrakva. A DOM beépített cloneNode függvénye erre nem képes, ezért is jobb, ha nem függünk a jQuery ezen tulajdonságától.
3

Igen így valóban logikusabb,

kifli · 2014. Ápr. 21. (H), 16.48
Igen így valóban logikusabb, és a klónozással sem kell szívni. Köszi.