Autor Zpráva
vojja01
Profil *
Dobrý den,
při deklarování funkce pro animaci (využívající knihovnu animací od Opery) jsem narazil na problém:
function animation(id, css, jedna, dva, speed = 6) {
  var animEl[id] = document.getElementById(id);
  animElAnim[id] = animEl[id].createAnimation();
  animElAnim[id].addAnimation(css, jedna, dva);
  animElAnim[id].speed = speed;
  animElAnim[id].run();
}
Pořád mi to píše chybu: syntaxerror : missing ; before statement
Ta chyba vím co znamená, že jsem zapomněl středník (teda aspoň jsem to tak pochopil), ale z příkladu je vidět, že mi tam středník nechybí. Nemůže mi někdo vysvětlit, co ta chyba symbolizuje?
Děkuji, budu rád za každou odpověď :) (živou ukázku bohužel ukázat nemůžu)
Davex
Profil
vojja01:
Tohle jde udělat?
var animEl[id] = document.getElementById(id);
vojja01
Profil *
Proč by nešlo?
Ta proměnná animEl je jen asociativní pole a index je parametr, co zadám...
Camo
Profil
vojja01:
Ak chceš v JS použiť pole, musíš ho najprv definovať cez pole=new Array();
A toto ti v JS neprejde speed=6. V JS nemôžeš zadať defaultnú hodnotu parametru.
Radek9
Profil
vojja01:
Nemůžeš ale při definování vlastnosti použít var. Prostě jen takhle:
animEl[id] = document.getElementById(id);
pako
Profil *
vojja01:
[#2] Davex ma pravdu, chybovu hlasku dostavas pretoze pouzivas var pri definovani vlastnosti objektu.
Camo:
za tymto ucelom by sa skor mal pouzivat objekt a aj mna prekvapil ten zapis ale je to pravdepodobne v poriadku, minimalne vo ff to prejde bez chyby, treba pozriet manual co vsetko moze byt argument
Camo
Profil
pako:
No FF to síce zožerie, ale tá Opera pre ktorú je to asi písané, určite nie.

PS: Vám toto funguje??? animEl[id] = document.getElementById(id);
Mne teda nie. Nemám to totiž definované ako objekt/pole.
pako
Profil *
Camo:
mas pravdu, je to sucast navrhu ECMAScript 6 a podporuje to len ff.
samozrejme ze nie, skor ma napadne ze objekt uz niekde existuje a var je navyse ako ze sa niekto snazi spravit nieco taketo ;)
Davex
Profil
Camo:
animEl a animElAnim by měly být globální pole definované vně funkce.
Camo
Profil
pako:
Davex:
Práve z toho var je jasné, že nejde o globálnu premennú, ktorá je niekde definovaná. Alebo ešte môže ísť o bastliča domáceho, ktorý sa na tomto fóre tiež vyskytuje v hojnom počte. Samozrejme to, že tá premenná by mala byť globálna neriešim. Je to určite efektívnejšie, ako to definovať pri každom volaní...

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: