konto usunięte

Temat: jQuery - wywołanie call backu na obiekcie

Witam serdecznie,

Za pomocą jquery zmieniam wartość pola tekstowego i chce udać, że robi to człowiek, dlatego potem chce wywołać dla tego obiektu call back keyup. Jak to mogę zrobić?
Janusz Skudrzyk

Janusz Skudrzyk Członek zarządu,
weblabs.pl

Temat: jQuery - wywołanie call backu na obiekcie

obiekt. i tu do wyboru:
1. trigger( event, data )
2. keyup( )Janusz Skudrzyk edytował(a) ten post dnia 18.12.09 o godzinie 12:28

konto usunięte

Temat: jQuery - wywołanie call backu na obiekcie

Dzięki Janusz za odpowiedź, ale to chyba nie jest to o co mi chodzi, bo nie widzę pożądanego rezultatu. Bliżej nakreślę sytuację:
1) mam ten input, gdzie chce wprowadzić tekst i udać że zrobił człowiek
2) mam za pomocą Event Delegation zrobione przechwytywanie zdarzeń. Jak wydarzy się keyup na owym inpucie, to mają się dziać pewne rzeczy

Jak na tym inpucie daje po prost keyup() czy trigger("keyup"), to się one nie dzieję. Tak jakbym nie potrzebował wywołać keyup(), tylko zrobić coś co sprawi że on się sam z siebie wywoła. Rozumiesz o co chodzi?
Tobiasz Glazar

Tobiasz Glazar Front-End Developer

Temat: jQuery - wywołanie call backu na obiekcie

To daj po prostu:

$input.keyup(function(){
//dziwne rzeczy
});


A wcześniej przeczytaj dokumentację.

konto usunięte

Temat: jQuery - wywołanie call backu na obiekcie

Tobiaszu, przecież to co mi sugerujesz Ty, tylko przypisze dziwne rzeczy do każdego kolejnego wystąpienia zdarzenia keyup na tym inpucie. A to, jak pisałem w poprzednim poście, mam zrobione poprzez event delegation i pięknie to mi działa. Teraz chciałbym aby mój skrypt był w stanie wywołać to zdarzenie keyup na inpucie. Wiesz, skrypcik udaje, że nacisnął klawisz.


A wcześniej przeczytaj dokumentację.


Wcześniej przeczytałem. I to nie tylko po to, aby nie zawracać Ci głowy banałami, ale głównie po to, że szybciej jest znaleźć coś już napisane zostało niż czekać aż ktoś to coś napisze.
Tobiasz Glazar

Tobiasz Glazar Front-End Developer

Temat: jQuery - wywołanie call backu na obiekcie

Jak to "na inpucie"?

Edycja:
Napisz po kolei co się ma dziać bo się chyba nie rozumiemy :)Tobiasz Glazar edytował(a) ten post dnia 18.12.09 o godzinie 13:52

konto usunięte

Temat: jQuery - wywołanie call backu na obiekcie

Jak sobie człowiek pisze w tym inpucie, to są wywoływane przy każdym naciśnięciu klawisza, owe dziwne rzeczy, a to za sprawą owego keyup.

I teraz skrypt zmienia wartość owego inputa i po zmianie tej wartości też muszą dziać się owe dziwne rzeczy. Co więcej, ponieważ to jest test, muszę udać że ktoś to tam wpisywał ręcznie, a więc muszę zrobić coś, co spowoduje że wystąpi zdarzenie keyup dla tego inputu, co z automatu spowoduje wystąpienie dziwnych rzeczy.
Tobiasz Glazar

Tobiasz Glazar Front-End Developer

Temat: jQuery - wywołanie call backu na obiekcie

Więc to według mnie wygląda tak:

$input.keyup(function(){
//twoje pierwsze zadanie
});

//zmiana wartości inputa gdzieś w skrypcie + wywolanie keyup
$input.trigger('keyup');
//$input musi być tym samym obiektem albo wywoływane tym samym selektorem

konto usunięte

Temat: jQuery - wywołanie call backu na obiekcie

Tak Tobiasz, przedstawione przez Ciebie rozwiązanie działa, jeśli zdarzenie do keyup przypiszemy w taki sposób, w jaki to zostało zrobione w Twoim przykładzie. Ja jednak nie mogę tego tak zrobić, bo nie mam żadnego pojęcia do ilu i jakich inputów to zdarzenie będzie wymagane. Dlatego stosuje event delegation, a przy tym już wywołanie trigger nie działa.

p.s. event delegation - http://kubionrails.blogspot.com/2009/07/ajax-i-zdarzen...
Tobiasz Glazar

Tobiasz Glazar Front-End Developer

Temat: jQuery - wywołanie call backu na obiekcie

A dlaczego nie masz pojęcia?

konto usunięte

Temat: jQuery - wywołanie call backu na obiekcie

Ponieważ piszę plugin do rubyonrails i nie wiem do czego i jak będzie on używany, a więc musi być uniwersalny
Tobiasz Glazar

Tobiasz Glazar Front-End Developer

Temat: jQuery - wywołanie call backu na obiekcie

W takim razie pozostaje Ci zrobić to nieelegancko :) Napisać funkcje i wywoływać ją w zdarzeniu keyup i po zmianie wartości inputa.

Edycja:
Nie wiem czy Ci to pomoże ale poczytaj o metodzie live.Tobiasz Glazar edytował(a) ten post dnia 18.12.09 o godzinie 18:05

konto usunięte

Temat: jQuery - wywołanie call backu na obiekcie

Piotr Misiurek:
Ponieważ piszę plugin do rubyonrails i nie wiem do czego i jak będzie on używany, a więc musi być uniwersalny

Wobec tego powinien to być również plugin jQuery, który działa na elementach typu input, a później to już każdy może sobie go przypiąć do czego chce, tak żeby dało się tego używać w następujący sposób:

$('.elementy').dziwnerzeczy();


albo


$('.elementy').dziwnerzeczy(function() {
// tutaj dzieją się te dziwne rzeczy, dostępny jest element,
// na którym aktualnie wykonywana jest funkcja, można przekazać
// jakieś inne parametry, eventy, itd.
// domknięcie może być użyte jako callback, etc.
});


Plugin podpinał by eventy pod elementy (takie jak wspomniane keyup). Moim zdaniem to nie tylko plugin do RoR, pytanie wydaje mi się bardziej dotyczyć pluginu jQuery (który równie dobrze może być wykorzystany poza Rails).Paweł K. edytował(a) ten post dnia 20.12.09 o godzinie 10:30



Wyślij zaproszenie do