Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [jQuery] Dodawanie i usuwanie elementów
atarex75
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.12.2010

Ostrzeżenie: (0%)
-----


Witam,

mam taki oto kod JS, który obsługuje zdarzenia dodania i ukrycia
  1. $(document).ready(FUNCTION(){
  2. // ADD
  3. $('#add_item').click(FUNCTION () {
  4. var r = Math.floor(Math.random()*20000);
  5. $('table').append('<tr id="'+r+'"><td><a href="#" class="link_remove" id="'+r+'">Usuń '+r+'</a></td></tr>');
  6. RETURN false;
  7. });
  8.  
  9. // remove
  10. $('a[class^=link_remove]').click(FUNCTION () {
  11. var id = this.getAttribute('id');
  12. $('tr[id='+id+']').hide();
  13. RETURN false;
  14. });
  15. });


i do tego HTML
  1. <a href="#" id="add_item">Dodaj</a>
  2. <tr id="0"><td><a href="#" class="link_remove" id="0">Ukryj</a></td></tr>
  3. </tbody>


o ile jeżeli fizycznie dodam wiersz w tabeli to bez problemu wszystko działa i po naciśnięciu UKRYJ wiersz znika, o tyle jeżeli zrobię to dynamicznie poprzez link DODAJ niestety zdarzenie nie działa ...

w czym tkwi problem? co robię nie tak?
Go to the top of the page
+Quote Post
binbash
post
Post #2





Grupa: Zarejestrowani
Postów: 22
Pomógł: 8
Dołączył: 28.12.2010
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Problem jest w tym, że dodając elementy dynamicznie nie mają one dodanego do zdarzenia "click" callbacka. Możesz zrobić to na 2 sposoby:
1. Skorzystać z metody live w jquery, wtedy wszystkie elementy nawet te dodane już po załadowaniu strony będą obsługiwać to zdarzenie:
  1. $('a[class^=link_remove]').live('click', function() {
  2. // implementacja
  3. });

2. Przy tworzeniu nowego linka zbindować dla niego do zdarzenia click ta funkcje usuwającą.
Go to the top of the page
+Quote Post
atarex75
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 28.12.2010

Ostrzeżenie: (0%)
-----


(IMG:style_emoticons/default/smile.gif)

dzięki wielkie, od rana mieszałem i nic ciekawego nie przychodziło mi do głowy, a tu LIVE ...

wszystko gra teraz ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 19:23