konto usunięte

Temat: jquery.live - load?

Mam taki kawalek kodu:
jQuery('.activeButton').each(function() {
ActivateButton(this);
});

wszystko fajnie, ale to nie jest LIVE :)
problem polega na tym ze dosc duza ilosc elementow .activeButton sa wgrywane pozniej do DOMa, wiec potrzebuje cos podobnego co bedzie dzialac jako live.

oczywiscie nie mozna zrobic live i dolaczyc eventu load.

Jakies pomysly?

konto usunięte

Temat: jquery.live - load?

A przy dodawaniu elementów nie możesz wywołać tego ponownie?:)

konto usunięte

Temat: jquery.live - load?

moge, ale nie chce, bo LIVE ulatwi zycie. Te cholerne activebutton sa praktycznie wszedzie i live ma tutaj sens i racje bytu :)

konto usunięte

Temat: jquery.live - load?

A zrobić jakąś funkcję która wykrywa ruchy w DOM na tych elementach i która zawiera callback, wtedy callback wystarczy bindować? Dobrze myślę? ;)

Edit:

No ale spójrz tu: http://api.jquery.com/live/

Przykład: Can bind custom events too.

Na razie live() nie obsługuje ani ready ani load... musisz to obejść w inny sposób.Krystian Podemski edytował(a) ten post dnia 15.11.10 o godzinie 21:05

konto usunięte

Temat: jquery.live - load?

Wiesz.. moge zrobic po prostu hover i akcje.. ale problem polega na tym ze:
Na load (tak byloby dla mnie perfekt) odpala sie JS, ktory przygotowuje sobie cala akcje (musi przygotowac obrazki wczesniej i je pre-loadnac) i dodaje mouseover, mouseout, mousedown, mouseup... dodaje az 4 eventy do kazdego przycisku.

Teraz chodzi tylko oto by przycisk, ktory sie pojawil na stronie (wgrany dynamiccznie do DOM) automatycznie zostal "przelecony" tym procesem ;)

Jak nic nie wymysle, to prawdopodobnie skonczy sie na udostepnieniu obiektu i mozliwosci odpalania procesu bindowania z zewnetrzenych skryptow (podzielone w moduly).
Rafał Toboła

Rafał Toboła Razor s.c. -
współwłaściciel

Temat: jquery.live - load?

Jeżeli są wgrywane później, to pewnie przez AJAX? Może skorzystać z ajaxStop?

konto usunięte

Temat: jquery.live - load?

Rafał Toboła:
Jeżeli są wgrywane później, to pewnie przez AJAX? Może skorzystać z ajaxStop?

Za duzo rzeczy sie dzieje naprawde.
to activeButton mozna nazwac podstawowa funckaj strony, a w stronie jest juz dobrych 5 modulow JS (bedzie wiecej), kazdy to dobre 1000 linii kodu. Wgrywane dynamicznie oczywiscie.
Jak nie znajde rozwiazania, ostatecznie bede zmuszony po prostu pamietac by to bindowac, ale po prostu wolalbym ominac ten problem w uniwersalny sposob.

ajaxstop byloby rozwiazaniem, ale zostanie odpalone "odrazu" a tak naprawde dane, ktore pobralem czasami jeszcze maja dlugo droge do "bycia wyswietlonymi" ;)Andrzej Winnicki edytował(a) ten post dnia 15.11.10 o godzinie 22:44

konto usunięte

Temat: jquery.live - load?

Andrzej Winnicki:
Mam taki kawalek kodu:
jQuery('.activeButton').each(function() {
ActivateButton(this);
});

wszystko fajnie, ale to nie jest LIVE :)

Sprobuj przesunac ActivateButton(this) do pluginu jQuery this.ActivateButton(), sciagnij jQuery live event:

http://www.erichynds.com/jquery/jquery-create-event/

i odpal na zasadzie:


$('.activeButton').ActiveButton().live('create', function() {
$(this).ActiveButton();
});


Pierwsze wywolanie "ActiveButton" aplikuje funkcje do aktualnie istniejacych elementow, $(this).ActiveButton() aplikuje do nowo dodanych.

Wrzucilem prosty przyladzik na jsfiddle, funkcja makeMeBlue zmienia kolor z czerwonego na niebieski, drugi kwadracik dodawany jest dynamicznie, co powoduje wykonanie funkcji makeMeBlue:

http://jsfiddle.net/u8TRJ/

moj kod ponizej pluginu live create event w lewym dolnym rogu. Hope that helps :)
Szymon Piłkowski

Szymon Piłkowski Senior JavaScript
Developer

Temat: jquery.live - load?

Andrzej Winnicki:
Mam taki kawalek kodu:
jQuery('.activeButton').each(function() {
ActivateButton(this);
});

jakie przegladarki obslugujesz? rozwiazaniem bylyby tzw. mutation events, ale zdaje sie, ze takie IE w ogole ich nie wspiera. ;) mozliwe, ze sa jakies pluginy dajace support pod IE - nie wnikalem. ale nie bardzo sobie wyobrazam jak mialyby dzialac - checksuma z document.body.innerHTML odpalana w zapetlonym timeoucie? :>

konto usunięte

Temat: jquery.live - load?

re-aplikowac to ja potrafie ;) To nie jest problem...
Ale bardzo ciezko to kontrolowac, tak zeby mialo sens i lepiej jakby live obslugiwalo cos na styl eventu "load" ;) Pelnie szczescia...
Troche podlubalem i chyba nie bede mial innego wyjscia jak jednak pobawic sie bindowanie po dodaniu, na tych elementach, ktore wrzucilem w DOM.

konto usunięte

Temat: jquery.live - load?

Andrzej Winnicki:
re-aplikowac to ja potrafie ;) To nie jest problem...
Ale bardzo ciezko to kontrolowac, tak zeby mialo sens i lepiej jakby live obslugiwalo cos na styl eventu "load" ;) Pelnie szczescia...
Troche podlubalem i chyba nie bede mial innego wyjscia jak jednak pobawic sie bindowanie po dodaniu, na tych elementach, ktore wrzucilem w DOM.

Przyklad, ktory dalem powyzej dopina sie do live'a w ten sam sposob co inne eventy. Kazdy event live to nic innego jak re-aplikowanie eventow prostych (stad nie dzialanie przy natywnych manipulacjach DOM).

Nie wiem co innego chcesz osiagnac?

konto usunięte

Temat: jquery.live - load?

Sebastian Pienio:
To co pokazales jest OK, napewno sie sprawdzi, ale nie jestem przekonany czy chce dodac tyle kodu, tylko po to by miec dodatkowa funkcje, ktora poki co wystepuje tylko w przypadku tych activeButtonow...

Następna dyskusja:

Linki do fajnych wtyczek, k...




Wyślij zaproszenie do