konto usunięte

Temat: wywolanie funkcji live

Maciej Szczepański:
Cezary H.:

$(".box").on('click','img',function(){
// tutaj już nie musisz dawać each
});


co ważne, .box nie może być dodawany dynamicznie,
bo wtedy ci go "on" nie złapie


niestety .box jest dodawany dynamicznie, próbowałem odwołać się do diva wyżej ale tez nie działa $("#boxes").on('click','img',function(){
rozwiązanie jest dosyć proste:
$(document).on('click','.box img',function(){
// tutaj już nie musisz dawać each
});

konto usunięte

Temat: wywolanie funkcji live

live i delegate zostal wycofany, wiec lepiej ich juz nie uzywac.
.on robi wszystko czego Ci trzeba, jesli wolisz recznie kontrolowac to co sie dzieje - uzywasz bind (aczkolwiek w twoim przypadku po insercie do DOMu).

$(document).on('click','.box img',function(){});
nie jestem przekonany do tego kawalka, bo podpinasz do calego document, co nie robi .on lepszego od zwyklego .live (ktory jest do d..), aczkolwiek jestem za leniwy by wrzucic kod do jsperf i potwierdzic swoje przypuszczenia ;)

Upewnij sie ze $("#boxes").on('click','img',function(){}); masz w document.ready i powinno byc ok.
Nie widze zadnego powodu dla ktorego mialoby nie dzialac...Andrzej Winnicki edytował(a) ten post dnia 25.05.12 o godzinie 18:24

konto usunięte

Temat: wywolanie funkcji live

Andrzej Winnicki:
live i delegate zostal wycofany, wiec lepiej ich juz nie uzywac.
.on robi wszystko czego Ci trzeba, jesli wolisz recznie kontrolowac to co sie dzieje - uzywasz bind (aczkolwiek w twoim przypadku po insercie do DOMu).

$(document).on('click','.box img',function(){});
nie jestem przekonany do tego kawalka, bo podpinasz do calego document, co nie robi .on lepszego od zwyklego .live (ktory jest do d..), aczkolwiek jestem za leniwy by wrzucic kod do jsperf i potwierdzic swoje przypuszczenia ;)

nie będziemy się chyba ścigać o mikrosekundy?

Upewnij sie ze $("#boxes").on('click','img',function(){}); masz w document.ready i powinno byc ok.
Nie widze zadnego powodu dla ktorego mialoby nie dzialac...

dlatego: "niestety .box jest dodawany dynamicznie"

konto usunięte

Temat: wywolanie funkcji live

Piotr L.:

Jesli tych boxikow jest kilka, to jeden pies.. jesli ich jest 200, to roznice mega siegac juz sekund.

.on jest dla wszystkich obecnych i przyszlych elementow. Wiec powinno dzialac....
.on zastepuje .live i .delegate, wiec musi tak dzialac, taka jego wlasnie rola :)
Zgadzam sie, jesli probujesz zrobic to do .box jako selector - tak.. on nie istnieje wiec sioe nie da :)

#boxes istnieje w HTMLu od samego poczatku... wiec mozna zrobic to tak (i dziala napewno, az sprawdzilem) ;)

$(document).ready(function($) {
$("#boxes").on('click','.box img',function(){
alert('uuuu dirty clicker!');
});
});


Jesli bedziesz mial boxow 1000... albo bedziesz mial 50 roznych .on() dla przeroznych elementow, beda one bubbleupowac jesli click jest dodawany na poziomie document (tak jak to robil live)... da sie tym zabic przegladarke, kiedy jeden click (niekoniecznie w element) odpala caly ciag zdarzen by sprawdzic co zostalo klikniete.Andrzej Winnicki edytował(a) ten post dnia 25.05.12 o godzinie 19:01

konto usunięte

Temat: wywolanie funkcji live

Andrzej Winnicki:
Piotr L.:

Jesli tych boxikow jest kilka, to jeden pies.. jesli ich jest 200, to roznice mega siegac juz sekund.

Tak, zgadzam się, zły skrypt boli całe życie... :D
.on jest dla wszystkich obecnych i przyszlych elementow. Wiec powinno dzialac....
.on zastepuje .live i .delegate, wiec musi tak dzialac, taka jego wlasnie rola :)
Zgadzam sie, jesli probujesz zrobic to do .box jako selector - tak.. on nie istnieje wiec sioe nie da :)

#boxes istnieje w HTMLu od samego poczatku... wiec mozna zrobic to tak (i dziala napewno, az sprawdzilem) ;)

$(document).ready(function($) {
$("#boxes").on('click','.box img',function(){
alert('uuuu dirty clicker!');
});
});


Jesli bedziesz mial boxow 1000... albo bedziesz mial 50 roznych .on() dla przeroznych elementow, beda one bubbleupowac jesli click jest dodawany na poziomie document (tak jak to robil live)... da sie tym zabic przegladarke, kiedy jeden click (niekoniecznie w element) odpala caly ciag zdarzen by sprawdzic co zostalo klikniete.

Przy takim skrypcie, gdzie występuje totalny bubbling rozwiązania są dwa:
1. zmienić skrypt
2. zmienić programistę :D

Następna dyskusja:

Linki do fajnych wtyczek, k...




Wyślij zaproszenie do