Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS][jQuery] Wywołanie funkcji callback po za zdarzeniem
Forum PHP.pl > Forum > Po stronie przeglądarki
kaem
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?
luniak
No trochę kombinujesz ale tak da się to inaczej zrobić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 smile.gif
zegarek84
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.