Autor Zpráva
Cpk
Profil
Pekny den prajem

Potreboval by som pomoc.
Mam udalost Pridat zaznam ktora pomocou ajaxu prida data do db, a javascript povytvara elementy on the fly. Taktiez vytvori tlacitko <a href>zmaz </a>
ktore sa nachadza <td id="120"><a href>zmaz</a></td>. To id identifikuje riadok, a je vytvarane tiez dynamicky. Vseko je zatial OK

Mam dalsiu udalost po kliknuti na odkaz zmaz, ktore by mi malo zmazat riadok, len mi to na dynamicky vytvorene lenementy nefunguje, neviete kde moze byt problem ?
Moze to byt tym, ze je niekde poruseny DOM ?



	function addNewRow(id){
		
		var datum 	= 	new Date();
		var h		=	datum.getHours();
		var m		=	datum.getMinutes();
		var s		=	datum.getSeconds();
		
		
		var cas		=  "dnes o:  "+ h + ":" + m + ":" + s; 		
		var countRows = $('#informations tr').size();
 		
		
		$('.n').removeClass("n");
		
		 createClasses();
	//if((countRows % 2) == 0){
			
			var el_tr 		= '<tr> </tr>';
			var el_cislo	= '<td>'+ countRows +'</td>';
			var el_titulok	= '<td>'+ $.tutilok +'</td>';
			var el_poradie	= '<td>'+ countRows +'</td>';
			var el_aktivne	= '<td>0</td>';
			var el_cas		= '<td>' + cas + '</td>';
			var el_id		= '<td>' + id + '</td>';
			var el_zmazat	= '<td></td>';
			var delete_butt = '<a href="#del"></a>';		  
			var img			= '<img src="./imgs/icons/delete.png" alt="Odstranit ?"/>';  
		/*		    }
				    else{
			var vhtml = '<tr class="n" ><td class="cislo">' + countRows  + '</td><td class="nazov">' + $.tutilok + '</td><td class="poradie">' +  countRows + '</td><td class="aktivne">0</td><td class="datum">' + cas + '</td><td class="id">' + id + '</td><td class="del"><a href="#del" id="' + id + '"><img src="./imgs/icons/delete.png" alt="Odstranit ?"/></a></td></tr>';
				    }
		*/
 			$('#informations tbody').append(el_tr);	
 			$('#informations tbody tr:last').addClass('n')	
 			$('#informations tbody .n').append(el_cislo);	
 			$('#informations tbody .n td:last').addClass("cislo");	
 			
 			$('#informations tbody .n').append(el_titulok);
 			$('#informations tbody .n td:last').addClass("nazov");
 			
 			$('#informations tbody .n').append(el_poradie);	
 			$('#informations tbody .n td:last').addClass("poradie");
 			
 			$('#informations tbody .n').append(el_aktivne);
 			$('#informations tbody .n td:last').addClass("aktivne");
 			
 			$('#informations tbody .n').append(el_cas);
 			$('#informations tbody .n td:last').addClass("datum");
 			
 			$('#informations tbody .n').append(el_id);
 			$('#informations tbody .n td:last').addClass("id");
 			
 			$('#informations tbody .n').append(el_zmazat);
 			$('#informations tbody .n td:last').addClass("del");
 			
 			$('#informations tbody .n .del').attr('id', id);
 			$('#' + id).append(delete_butt); 
 			
 			$('#' + id + " a").append(img);
 			
 
 			
 			
 			$('.n').css("background-color", "#bcfbb3");
 		}
// -------------- odstranenie stranky


	 $(function() {
			  $("table#informations").each(function() {
			                $("td.del a", this).click(function() {                  
			                var id =  $(this).parent().attr("id");
			                var odpoved = confirm("Chcete skutocne zmazat stranku ID: "+ id +"?")
			                if(odpoved != true){
			                	return false;
			                }
			                $(this).parent().parent().fadeOut(1000);
			                setTimeout(function() {$(this).parent().parent().remove();}, 1000);
		
			                
			                // var	id = $(".id", this).parent().text();
			                 
			             	 var pocet = $('.id').size();
			   				 console.log(pocet);
			             	 return false;   
			            });
			    	});
	 });      
        





Moderátor Chamurappi: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou. Před otazník nepatří mezera.
Chamurappi
Profil
Reaguji na Cpka:
Moze to byt tym, ze je niekde poruseny DOM ?
Porušený DOM? Co si pod tím pojmem představuješ?

Příčinou problému nejspíš bude, že jQuery není CSS, selektory se nevyhodnocují průběžně.
nightfish
Profil
Chamurappi:
selektory se nevyhodnocují průběžně.
to by mohlo jít vyřešit pomocí live
Cpk
Profil
Chamurappi:
Asi to bude tým. Máš nejaké riešenie, ako to rozchodiť ?
Skusil som aj metódu live(), ale nepomohlo.

// edit

Nakoniec som to vyriešil tak, že do každej novovytvorenej položky vložil onClick metodu na zamazanie
Greeg
Profil
nieco podobne je aj plugin livequery
ten sleduje DOM a ked sa v nom objavi novy element vyhovujuci selectoru, bindne mu danu funkciu

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: