|
(X)HTML, JavaScript, DHTML, XML, CSS Client scripting tehnologije, Dynamic HTML, Cascading Stylesheets, XML i standardi |
|
Alati teme | Način prikaza |
25. 06. 2010. | #1 |
član
Certified
Datum učlanjenja: 26.12.2006
Poruke: 70
Hvala: 12
1 "Hvala" u 1 poruci
|
jQuery: DOM neradi nakon učitavanja novog sadržaja
Pomoću jQuery-jeve funkcije ajax pokušam da učitam sadržaj u UL tag. Nakog toga DOM neće da mi iako su učitani HTML elementi sa istim parametrima.
Dakle, pokušam da izbrišem LI tag i radi samo prvi put. Drugo brisanje već neradi iako je kod potpuno isti ali je učitan pomoću AJAX-a . HTML kôd:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>jQuery: DOM neradi nakon učitavanja novog sadržaja</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="css.css" /> <script src="jquery.js" type="text/javascript"></script> <script type="text/javascript" charset="utf-8"> $(function() { $('a[rel=obrisi]').click( function() { $("div#status").html("Učitavanje..."); var sifstavke = $(this).parents('li').attr('id');//Šifra stavke. var data = 'sifstavke=' + sifstavke; $.ajax({ url: "/testsajt/jquery-problem/obrisi.php", type: "GET", data: data, cache: false, success: function (html) { if (html) { $("div#status").html(" "); $("ul#stavke").html(html); } else alert('Došlo je do greške prilikom brisanja stavke.'); } });// ajax return false; } ); }); </script> </head> <body> <ul id="stavke"> <div id="status"> </div> <li id="stavka-1">Stavka 1 <a href="stavka.php" rel="obrisi">Obriši</a></li> <li id="stavka-2">Stavka 2 <a href="stavka.php" rel="obrisi">Obriši</a></li> <li id="stavka-3">Stavka 3 <a href="stavka.php" rel="obrisi">Obriši</a></li> <li id="stavka-4">Stavka 4 <a href="stavka.php" rel="obrisi">Obriši</a></li> <li id="stavka-5">Stavka 5 <a href="stavka.php" rel="obrisi">Obriši</a></li> </ul> </body> </html> PHP kôd:
PHP kôd:
Da li neko može da mi objasni ovaj problem. Unapred hvala. |
25. 06. 2010. | #2 |
xippster
Master
Datum učlanjenja: 16.06.2005
Lokacija: Beograd
Poruke: 681
Hvala: 102
138 "Hvala" u 84 poruka
|
pa kad odradis $("ul#stavke").html(html); brises postojece elemente tako da ti onaj klik nije bindovan ni za sta vise
koristi .live('click', function(){...}) ili na neki drugi nacin binduj event btw "ne" se u ovom slucaju pise odvojeno, zajedno je samo u nemam, necu i nemoj :P Poslednja izmena od xippi : 25. 06. 2010. u 17:45. |
3 članova zahvaljuje xippi za poruku: |
25. 06. 2010. | #3 |
član
Certified
Datum učlanjenja: 26.12.2006
Poruke: 70
Hvala: 12
1 "Hvala" u 1 poruci
|
|
25. 06. 2010. | #4 |
xippster
Master
Datum učlanjenja: 16.06.2005
Lokacija: Beograd
Poruke: 681
Hvala: 102
138 "Hvala" u 84 poruka
|
samo da se nadovezem, kada brises ovako elemente nije potrebno da ucitavas celu listu, ako je request prosao ok mozes da odradis samo $(this).parent().remove() i da maknes samo taj element
|
04. 07. 2010. | #5 |
član
Certified
Datum učlanjenja: 26.12.2006
Poruke: 70
Hvala: 12
1 "Hvala" u 1 poruci
|
.live() radi dobro.
U međuvremenu sam naišao na još jedan problem. Naime, pomoću .html() u textarea učitam neki tekst, zatim ga malo promenim, kliknem na dugme submit i prikažemi se isti tekst koji sam učitao pomoću .html() a ne onaj koji sam ja modifikovao. Evo i ceo kod HTML kôd:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>jQuery: DOM ne radi nakon učitavanja novog sadržaja u TEXTAREA</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="css.css" /> <script src="jquery.js" type="text/javascript"></script> <script type="text/javascript" charset="utf-8"> $(function() { $("select[name=naslov]").live('change', function () { var naslov; $("select[name=naslov] option:selected").each(function () { naslov = $(this).html(); }); $("textarea[name=izmena]").html(naslov); }) .change(); $("form").live('submit', function() { var novi_naslov = $("textarea[name=izmena]").html(); alert(novi_naslov); return false; }); }); </script> </head> <body> <select name="naslov"> <option value="1">Naslov 1</option> <option value="2">Naslov 2</option> <option value="3">Naslov 3</option> <option value="4">Naslov 4</option> <option value="5">Naslov 5</option> </select> <form action="#" method="POST"> <textarea name="izmena"> </textarea> <br /> <input type="submit" value="izmeni" /> </form> </body> </html> |
04. 07. 2010. | #6 |
Ivan Dilber
Sir Write-a-Lot
|
pokusaj da koristis text(), a ne html()
__________________
Leadership is the art of getting people to want to do what you know must be done. |
04. 07. 2010. | #7 |
Boban Karišik
Expert
|
..ili val() da bi mu dodelio vrednost..
__________________
Ako već nisi Anđeo, bar budi čovek... |
05. 07. 2010. | #8 |
član
Certified
Datum učlanjenja: 26.12.2006
Poruke: 70
Hvala: 12
1 "Hvala" u 1 poruci
|
Ne radi ni sa .text() (inače meni treba baš .html()).
.val() ne radi... to radi sa input ne sa textarea. |
05. 07. 2010. | #9 |
Boban Karišik
Expert
|
Trebalo bi da radi i sa text() i sa val()
Probaj sa attr('value', 'neka vrednost')
__________________
Ako već nisi Anđeo, bar budi čovek... |
05. 07. 2010. | #10 |
član
Certified
Datum učlanjenja: 26.12.2006
Poruke: 70
Hvala: 12
1 "Hvala" u 1 poruci
|
Neće ništa od ovoga. Da li kod tebe radi?
|
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Krađa sadržaja - Ima li pomoći | Mr.Paja | Planiranje i usability | 18 | 12. 01. 2011. 20:50 |
Izvor sadržaja - duplicate content? | HexTex | Marketing i SEO | 11 | 26. 10. 2010. 12:24 |
Potrebna firma iz Novog Sada | Ekvador | Poslovne ponude i zapošljavanje | 6 | 12. 04. 2010. 00:37 |
Start novog sajta,servisa... | Veljko | Marketing i SEO | 15 | 24. 01. 2008. 19:54 |