Całkiem stylowo świrnięci

Moje boje z $(document).ready() w JQuery - czyli pomocy!

Jednym z obecnych zleceń nad jakimi pracujemy jest dość duży sklep internetowy. W kilku miejscach używany jest javascript, aby np: przyjemnie chodziła galeria zdjęć produktu, czy przyjemnie działał wybór adresy wysyłki... Jednak problem, jaki napotkałem jest taki, że nie zawsze jest odpalana funkcja inicjująca (a przynajmniej na to stawiam).

Problem jest poważny, gdyż nie mam go jak testować - występuje on na różnych komputerach klienta, zarówno na IE jak i FX, a na naszych za ChRL nie chce się pojawić - tj. u nas wszystko śmiga prześlicznie. Kod JS i HTML jest poprawny (Opera, IE, Webdeveloper@FX nie zgłaszają błędów).

Jak wspominałem - korzystamy z bilbioteki JQuery, która to znacznie umiliła mi życie jeśli chodzi o tworzenie javascript (a przy tym jest znacznie mniejsza od kobylastego prototype). Kod, który używam do odpalania różnych funkcji JS:


[...definicje różnych funkcji...]

function initialize()
{
	initNotReady();
	initDeliveryForm();
	initAddressForm();
	initAddressMultiForm();
	[...]
}

$(document).ready(initialize);

Czyli zwykły, ładny i grzeczny kod, który należy stosować przy JQuery - kod niemal prosto z manuala. Problem leży w tym, że czasem przeglądarka klienta zachowuje się tak, jakby miała wyłączony javascript całkowicie. Stąd moje przypuszczenie, iż nie jest odpalana funkcjia initialize() ...lub jest odpalana zbyt wcześnie. Dorobiłem zatem zabezpieczenei przed tym:

var hasLoaded = false;

function initialize()
{
	if(hasLoaded)
	{
		return true;
	}
	initNotReady();
	initDeliveryForm();
	initAddressForm();
	initAddressMultiForm();
	[...]
	hasLoaded = true;
}

$(document).ready(initialize);
$(window).load(initialize);

Jeżeli to nie pomoże, to chyba będę zmuszony brutalnie wstawić <script/> tuż przed </body>, a nie za bardzo mi się to podoba. Jakieś pomysły?

Powrót do “całkiem stylowo świrnięci” »

Komentarze

  1. Całek napisał(a):

    (2007-01-11 o godz. 01:26)

    No i niestety zostałem zmuszony do użycia tej opcji nieeleganckiej. Mam nadzieję, że to pomoże :>
  2. snowdog (http://kubazwolinski.com) napisał(a):

    (2007-01-11 o godz. 13:02)

    a gdyby treść funkcji “initialize” wrzucić bezpośrednio do ”$(document).ready”? Miałem problem z inicjowaniem jednej funkcji w JQUERY i z bliżej nieokreślonych przyczyn to pomogło. Nie jestem ekspertem JS więc to tylko taka luźna myśl…
  3. Marcin Krawiec napisał(a):

    (2007-01-16 o godz. 08:53)

    No i niestety – po różnych próbach i testach nadal nie działa jak powinno :/ nie wygląda to na problem $(document).ready(), gdyż pod koniec <body> odpalam moją funkcję za pomocą “chamskiego” <script> i to nie pomaga…

    Thnx za radę, może kiedyś się okaże pomocna :>)
  4. wjozcqpjodb (http://mfczutvbbqzu.com/) napisał(a):

    (2009-09-30 o godz. 17:26)

    ZbQibY <a href=”http://znsuidcbemrs.com/”>znsuidcbemrs</a>, [url=http://cwglxhxttcml.com/]cwglxhxttcml[/url], [link=http://fquwzyydausj.com/]fquwzyydausj[/link], http://dfdsjjwljfss.com/
  5. pucwdcizeo (NhXKgjJtGVlKrIqvJ) napisał(a):

    (2009-10-04 o godz. 14:25)

    q0WsJL <a href=”http://psljutosgkue.com/”>psljutosgkue</a>, [url=http://ggwtpeuocqnu.com/]ggwtpeuocqnu[/url], [link=http://nmssvtaqruja.com/]nmssvtaqruja[/link], http://othkcmougvmj.com/
  6. Wropapporpova napisał(a):

    (2009-10-11 o godz. 00:26)

    Hi People
    How are you doing?

Dodaj komentarz