Autor Zpráva
dufeja
Profil
Potřeboval bych prosím pomoc. Mám tuto stránku http://www.babylon-pong.wz.cz/tipovacka, kde mi v pohodě funguje v Opeře i FF script na tipování zápasů a poté případné odstraňování tipů. V IE sice funguje přidávání, ale to odstraňování už ne. A ke všemu se mi to v pravém sloupci špatně formátuje. Přitom jsou ty scripty i formátování téměř stejné v obou sloupcích. Ke všemu explorer nehlásí žádnou chybu. Děkuji
centi
Profil
dufeja
Formátovanie (class atribút) viz: http://blog.centi.sk/clanky/internet-explorer-ako-na-style-atribut-v-j avascripte

Podobný problém bude i s priradením onclick atribútu. Lepšie bude namiesto atribútu priradiť rovno onclick udalosť, teda namiesto:

soub.setAttribute('onclick',"odstran('"+domaci+"','"+hostujici+"',"+z apas+");");


použiť:

soub.onclick = function() {
	odstran( domaci, hostujici, zapas );
};
peta
Profil
jak uz jsem psal vcera nekdy poledne, ale nejaky pip mi to smazal. Tusim, ze to je zas prace Chamurapiho. Asi podam oficialni stiznost.
Otevru stranku, kliknu na remiza a JS konzola ve FF mi vyhodi 6 chyb.
Pravdepodobne pro odstranovani chyb bys dosel k tomu, co napsal centi.
dufeja
Profil
Tak sem to zkusil a docela mi to teďka dělá neplechu.
peta
Profil
dufeja
pri klinku na tym2
Chyba: uncaught exception: [Exception... "Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMHTMLDivElement.removeChild]" nsresult: "0x80004003 (NS_ERROR_INVALID_POINTER)" location: "JS frame :: http://www.babylon-pong.wz.cz/tipovacka/js.js :: pridej :: line 11" data: no]
... mas tam chybne zapsane, jak pracovat s ramem. A propo, k cemu tam mas ramy?
centi
Profil
dufeja
Tak sem to zkusil a docela mi to teďka dělá neplechu.
To bude tým, že si nespravil to čo som písal. "onclick" je obsluha udalosti, a hodnotou musí byť referencia na obslužnú funkciu, nie jej volanie. Takže vo funkcii odstran() si zmeň:

document.getElementById(zap+'_1').onclick=pridej(domaci,hostujici,zap as,1);


na

document.getElementById(zap+'_1').onclick = function() {
	pridej(domaci,hostujici,zapas,1);
};

A samozrejme rovnako upraviť i vo funkcii pridej() toto:

soub.setAttribute('onclick', "...")
Chamurappi
Profil
Reaguji na dufeju:
document.getElementById(zap+'_1').onclick=pridej(domaci,hostujici,za pas,1);
Přiřazuješ výsledek funkce „pridej“, nikoliv samotnou funkci. K vyhodnocení „pridej“ tedy dochází okamžitě při přiřazení uvnitř funkce „odstran“. Použij zápis, který doporučoval centi.
Uvnitř funkce „pridej“ máš onclick přiřazený pomocí setAttribute, což v Exploreru nechodí, použij tedy opět zápis od centiho.

Edit: Aha, tak už mě předběhl sám centi.


Reaguji na petu:
nejaky pip mi to smazal
Smazal jsem tě, protože jsi žvatlal nesmysly. Tazatel psal, že má problém s Explorerem, tys mu sem vykopíroval neškodná varování z Mozilly a prohlásil je za chyby. Teď jsi to udělal znovu. Umíš číst? „Varování“ není chyba a v tomto případě přiřazení do nedeklarované proměnné nevadí.

Nepřeji si, abys opakoval to, co ti mažu. Má rozhodnutí jsou konečná a tím, že zopakuješ stejný text, dosáhneš v nejlepším případě opakovaného smazání.

Asi podam oficialni stiznost.
Do toho.

mas tam chybne zapsane, jak pracovat s ramem
Ne, má tam špatný argument pro removeChild.

A propo, k cemu tam mas ramy?
Vždyť tam nemá rámy. Špatně jsi pochopil výpis z konzole.
peta
Profil
Chamurappi Nemam, ti co rici.

dufeja
Mozna by bylo pro tebe jednodussi, kdybys to napsal takto
<neco onclick=funkce(this) a=1 b=2>
funkce(obj)
{
if (obj.a==1)
{
obj.a=3
obj.b=4
}
}
A nemusis se patlat s nastavovani nove funkce.
dufeja
Profil
Centi Ta tvoje první věta na stránkách naprosto přesně sedí i na mě :-), taky sem už měl vyhráno do tý doby, než sem začel testovat v IE.

Ale jinak moc děkuji za pomoc, centiho způsob jede skvěle. Teď už by to mělo bejt v pohodě to dodělat. Tak dík

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:

0