Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [javascript] Problem z setTimeout
Forum PHP.pl > Forum > Przedszkole
sunneku
Witam

Mam problem z błędem - 'missing ) after argument list'

Definicja wywoływanej funkcji
  1. var Api = ({
  2. ......
  3. connectLink : function(url) {}
  4. ..................
  5. });


  1. Api.addrTarget[key] //akuratnie zwraca http://www.mojadomena.pl/


<znaczy sam link bez otoczki <a>. To forum tak to przekształca.

W kodzie wywołuję następującą operację:
  1. setTimeout("Api.connectLink("+Api.addrTarget[key]+");", 250);


wg mnie rozwija w:
  1. Api.connectLink(http://www.mojadomena.pl/);


W praktyce niestety otrzymuję błąd
'missing ) after argument list'

Czy ktoś wie o co biega?

Z góry mówię że usunięcie tej funkcji sprawia że skrypt poprawnie biega.
zegarek84
Cytat(sunneku @ 29.07.2011, 14:03:11 ) *
wg mnie rozwija w:
  1. Api.connectLink(http://www.mojadomena.pl/);

dobrze myślisz ale to jest złe rozwinięcie - czytaj nie poprawne...

ten sam błąd otrzymasz przy:
Kod
setTimeout("alert(http://www.mojadomena.pl/)",10);

zaś poprawne już jest:
Kod
setTimeout("alert('http://www.mojadomena.pl/')",10);

a jeszcze dla zrozumienia błędu wpisz sobie coś w stylu:
setTimeout("alert(wyimaginowana_zmienna)",10);

poza tym eval nie ważne w jakiej postaci ale zawsze jest i będzie zły...
jednym z rozwiązań to tutaj możesz skorzystać z anonimowej funkcji...
Kod
setTimeout(function(){Api.connectLink(Api.addrTarget[key]);}, 250);

przy czym doczytaj o zasięgu zmiennych i o innych kluczkach gdyż też czasem możesz się zdziwić...
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.