Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jQuery, dodanie akcji do elementu który przed chwilą utworzyłem
pgrzelka
post 26.01.2010, 13:04:45
Post #1





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


Witam

w jQuery tworzę sobie kilka elementów

Kod
var id = <?php echo $i+1; ?>
    
    $('#dodaj').click(function(){
        $('<tr id="row'+id+'"><td><img rel="'+id+'" class="delete" src="/skin/icons/03/16/01.png" /></td></tr>').insertAfter('.items tr:last');
        id ++;
    });


dalej mam kod
Kod
$('.delete').click(function() {
        var rel = $(this).attr('rel');
        alert(rel);
  });


chciałbym aby każdemu IMG z class="delete" była przypisana funkcja która pobiera atrybut REL z tego IMG
powyższy kod działa dla IMG które były zapisane 'na sztywno', niestety nie reaguje dla elementów które utworzyłem później przyciskiem #dodaj,
jak rozwiązać mój problem ?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
wookieb
post 26.01.2010, 13:12:36
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




użyj live, albo tworz elementy poprzez ich klonowanie
[JAVASCRIPT] pobierz, plaintext
  1. var clone = $('element').clone(true); // tworzt kopie elementu wraz z jego zdarzeniami
  2. $('innyelement').append(clone); // czy tam twoj insertAfter
[JAVASCRIPT] pobierz, plaintext


--------------------
Go to the top of the page
+Quote Post
kosmowariat
post 26.01.2010, 13:13:34
Post #3





Grupa: Zarejestrowani
Postów: 235
Pomógł: 17
Dołączył: 18.07.2007
Skąd: Białystok

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


ten drugi kawałek musisz wykonac dopiero po utworzeniu elementów albo przypisac onclicka w trakcie tworzenia elementu
Go to the top of the page
+Quote Post
pgrzelka
post 26.01.2010, 13:19:36
Post #4





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


dzięki kosmowariat, przy dodawaniu elementu uruchamiam funkcję która przypisze akcje dla każdego class="delete",
wookieb: Twój sposób też byłby dobry ale bardziej by mi kod komplikował

Kod
var id = <?php echo $i+1; ?>
    
    $('#dodaj').click(function(){
        $('<tr id="row'+id+'"><td><input type="text" name="user['+id+']" /></td><td><input type="text" name="pass['+id+']" /></td><td><select name="admin['+id+']"><option value="0">Nie</option><option value="1">Tak</option></select></td><td><img rel="'+id+'" class="delete" src="/skin/icons/03/16/01.png" /></td></tr>').insertAfter('.items tr:last');
        id ++;
        przypisz_delete();
    });
    
    function przypisz_delete() {
        $('.delete').click(function() {
            var rel = $(this).attr('rel');
            alert(rel);
            $('#row'+rel+' input').remove();
            $('#row'+rel+' select').remove();
            $('#row'+rel).hide("slow");
        });
    }
    przypisz_delete();


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 05:52