Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS][jQuery] Wywołanie funkcji callback po za zdarzeniem
kaem
post
Post #1





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


Witam,
da się wywołać funkcję będącą callbackiem jakiegoś zdarzenia na konkretnym obiekcie jquery?
Np. mam:
  1. $("#samolot").bind( 'click', showSamolotForm );
  2. //i funkcje
  3. function showSamolotForm()
  4. {
  5. if($(this).is(':checked'))
  6. // bla bla
  7. }

I teraz chciałbym wywołać funkcje showSamolotForm po załadowaniu dokumentu dla obiektu $("#samolot"), ale nie wykorzystując trigger('click). Da się tak (np. przekazując coś do argumentu funkcji bo domyślnie taki argument chyba jest przekazywany) czy za bardzo kombinuje?

Ten post edytował kaem 22.11.2011, 14:43:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
luniak
post
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 36
Dołączył: 12.01.2008
Skąd: Puszcza Mariańska

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


No trochę kombinujesz ale tak da się to inaczej zrobić(IMG:style_emoticons/default/smile.gif)
np
  1. $("#samolot").bind( 'click', showSamolotForm ).bind('ready',showSamolotForm);
  2. //i funkcje
  3. function showSamolotForm()
  4. {
  5. if($(this).is(':checked'))
  6. // bla bla
  7. }


i powinien wywołać tylko za 1 razem czyli jak obiekt bedzie "ready" a potem na clickach, nietestowałem ale popróbuj (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
zegarek84
post
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


Cytat(kaem @ 22.11.2011, 14:42:09 ) *
I teraz chciałbym wywołać funkcje showSamolotForm po załadowaniu dokumentu dla obiektu $("#samolot"), ale nie wykorzystując trigger('click). Da się tak (np. przekazując coś do argumentu funkcji bo domyślnie taki argument chyba jest przekazywany) czy za bardzo kombinuje?

podstawy JavaScript do tego by się przydały, by to zrozumieć - poczytaj o call i apply... z jQuery skorzystaj jako z selektora (normalnie elementów o danym id masz 1 w dokumencie)... rozpiszę Ci kilka przypadków:
Kod
showSamolotForm.call($("#samolot")[0]); // o zerowym indeksie jest pierwszy wyszukany element


jeśli elementów w kolekcji jQuery masz więcej to możesz je prze iterować by dla każdego funkcję zastosować konstrukcją np. (swoje tagi daj):
Kod
$('div').each(callback);

czyli wystarczy:
Kod
$('div').each(showSamolotForm);


niżej opisuję, by zrozumieć jak to działa
gdzie callback z manuala jest funkcją z argumentami (można je tez pominąć ale to dalej) callback(indexInArray, valueOfElement)The function that will be executed on every object.
czyli:
Kod
$('div').each(function(indexInArray, valueOfElement){showSamolotForm.call(valueOfElement);}); //valueOfElement jest tutaj obiektem/elementem drzewa DOM

lub bez wykorzystywania argumentów:
Kod
$('div').each(function(){showSamolotForm.call(this);}); //argumenty wejściowe można było zostawić, to nic nie zmienia


by zrozumieć lepiej JS i jego OOP przejrzyj linki które zamieściłem w tym poście:
http://forum.php.pl/index.php?s=&showt...st&p=919020

Ten post edytował zegarek84 6.12.2011, 14:11:05
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 23:31