Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [JavaScript]JQUERY - zdarzenie podpiete do linkow działa tylko na niektorych

Napisany przez: michat34 23.10.2012, 17:10:40

jest skrypt ktory tworzy dynamiczne linki. chcialbym zeby po kliknieciu na te nowe linki cos sie działo.
podpiąłem wiec zdarzenie $('a').....

i problem jest taki ze działa mi ono dla linkow ktore napisałem w htmlu recznie, ale dla tych nowo tworzonych nie działa.

czy nowo tworzone obiekty nie sa obejmowane takimi zdarzeniami?

Napisany przez: #luq 23.10.2012, 18:15:17

Podaj gdzieś live ten skrypt, będzie łatwiej pomóc.

Taka mała porada:

[JAVASCRIPT] pobierz, plaintext
  1. $('#obr').innerHtml = '';
[JAVASCRIPT] pobierz, plaintext


będzie szybsze niż remove();

Napisany przez: b4rt3kk 23.10.2012, 21:20:05

Cytat(michat34 @ 23.10.2012, 18:10:40 ) *
jest skrypt ktory tworzy dynamiczne linki. chcialbym zeby po kliknieciu na te nowe linki cos sie działo.
podpiąłem wiec zdarzenie $('a').....

i problem jest taki ze działa mi ono dla linkow ktore napisałem w htmlu recznie, ale dla tych nowo tworzonych nie działa.

czy nowo tworzone obiekty nie sa obejmowane takimi zdarzeniami?


W jaki sposób są tworzone te linki? PHP czy JS? Opakowałeś całość skryptu w:

  1. $(function(){
  2. $('a').click(funkcja);
  3. });


Napisany przez: Greg0 23.10.2012, 21:39:57

Jeśli tworzysz linki dynamicznie i chcesz żeby działały na nich eventy już zdefiniowane musisz je definiować w ten sposób

[JAVASCRIPT] pobierz, plaintext
  1. $('a').live('click', function() {
  2. //tresc
  3. });
[JAVASCRIPT] pobierz, plaintext

Napisany przez: sh3d2 23.10.2012, 22:48:41

wg dokumentacji jquery

Cytat
As of jQuery 1.7, the .live() method is deprecated. Use .on() to attach event handlers. Users of older versions of jQuery should use .delegate() in preference to .live().


wykorzystujac metode .on() wywolanie powinno wygladac tak
Kod
$("body").on("click", "a", function(){
// ...
})

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)