Autor | Zpráva | ||
---|---|---|---|
xart Profil * |
#1 · Zasláno: 19. 2. 2014, 14:35:00 · Upravil/a: xart
Ahoj,
Mám kód: <div start=1 startyear=2013 endyear=2015> <a onclick="return funkce(this.parentNode.startmonth);"></a> reference to undefined property this.parentNode.startmonth Proč to nefunguje, nebo jak to mám opravit? Ten div má asi 10 atributu, stejně jako funkce má více parametrů- tohle je jen pro ukázku. <div start=1 startyear=2013 endyear=2015 startmonth=2 ...> |
||
_es Profil |
xart:
this.parentNode.getAttribute("startmonth") |
||
xart Profil * |
#3 · Zasláno: 19. 2. 2014, 15:20:41
_es:
this.parentNode.getAttribute("startmonth") -- Toto nebude fungovat všude, ne? „Prečo vlastne ukladáš hodnoty do atribútov elementov a nie ‚normálne‘ do JS premenných?“ Jsou to hodnoty z PHP, které vypisuji do template... do externího JS PHP zapisovat nemůže. |
||
_es Profil |
xart:
„do externího JS PHP zapisovat nemůže.“ Prečo by nemohlo?: <script src="PHPsúbor.php"></script> „Toto nebude fungovat všude, ne?“ V akom prehliadači ti to nefunguje? |
||
Chamurappi Profil |
Reaguji na xarta:
Na čtení vlastních atributů budeš muset použít metodu getAttribute . Tedy this.parentNode.getAttribute("startmonth") .
„v JS konzoly tuhle chybu“ Určitě je to chyba? Není to spíš jen varování? Čtení nedefinované vlastnosti by nemělo vyvolat chybu. Edit: Nějak dlouho jsem čekal s odesláním, příspěvky #2 až #4 jsem neviděl :-) „Toto nebude fungovat všude, ne?“ Bude. |
||
xart Profil * |
#6 · Zasláno: 19. 2. 2014, 15:40:35
_es:
Doporučuji užívat standardní vlastnosti HTML DOMu místo getAttribute/setAttribute - nezkoušel jsem to, ale mám na paměti, že by to někde mohlo nefungovat. Teď ale koukám, že tam Chamurappi vypisuje nějjaké konkrétní atributy pouze, znamená to, že pro práíci s vlastními atributy toto používat mohu? Chamurappi: „Určitě je to chyba?“ Varování, ano, máš pravdu. |
||
Chamurappi Profil |
#7 · Zasláno: 19. 2. 2014, 15:45:23
Reaguji na xarta:
Jenže startmonth není standardní vlastnost DOMu, ale něco, co sis sám vymyslel. Prohlížeč ti k tomu nezprostředkovává pohodlnější cestu.
|
||
xart Profil * |
#8 · Zasláno: 19. 2. 2014, 15:54:15
Chamurappi:
Začínám se asi už necházet v tom, co píšete. Bral jsem jako standardní přístup k jakémukoliv atributu pomocí tečky (.id, .startmonth) než pomocí getattribute. Nemám teď aktuálně možnost zkoušet, bude zaměřování pře getattribute fungovat v ie8+ (jinde problémy nečekám) |
||
_es Profil |
#9 · Zasláno: 19. 2. 2014, 17:06:23
xart:
„bude zaměřování pře getattribute fungovat v ie8+ (jinde problémy nečekám)“ Bude fungovať aj na oveľa starších prehliadačoch na atribútoch s vlastným názvom. Problematické je práve fungovanie pre štandardné atribúty. Aby sa aj len teoreticky vylúčila kolízia, môžeš dať názvom nejaký prefix, trebárs podľa HTML5 data- . Stále mi nie je jasné, prečo PHP generuje nejaké dáta do HTML atribútov a nie normálne, ako by sa patrilo, do JS kódu.
|
||
xart Profil * |
#10 · Zasláno: 20. 2. 2014, 08:14:56
_es:
Je to pozůstatek staršího projektu, který není v mé moci (z finančích důvodů, nebylo by to zaplaceno) plně předělávat. Na tyhle atributy jsou navázané další akce, styly, atp. Ale odnáším si zajímavý poznatek, že getattribute funguje správně, přestože jsem měl zažité, že ne. |
||
Časová prodleva: 10 let
|
0