DOM struktura a ID

ZAJDAN

  • *****
  • 2 056
    • Zobrazit profil
    • E-mail
DOM struktura a ID
« kdy: 16. 05. 2013, 08:05:15 »
Ahoj...
vím, že toto téma je vhodnější na jiné portály, ale koncentrace lidí z oboru je zde natolik velká, že si troufnu říct, že odpovědi zde budou rychlejší a výstižnější než jinde.
Otázka:
jak je to s unikátností id v DOM struktuře...dejme tomu, že do nějakého hlavního html dokumentu includuju několik samostatných svg dokumentů a ve všech se objevují id. Tyto id musejí být unikátní v rámci toho jednoho samostaného dokumentu (svg) nebo unikátní ve smyslu celé DOM struktury kam se to vše načte a "spojí"?
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.


DK

Re:DOM struktura a ID
« Odpověď #1 kdy: 16. 05. 2013, 09:09:51 »
id musi byt unikatni v ramci dokumentu... kdyz tam das SVG pomoci embed/iframe/object, tak by to mel byt extra dokument vnoreny do stranky, tedy by mohl obsahovat stejna id jako id v rodicovskem dokumentu/ostatnich svg souborech

ZAJDAN

  • *****
  • 2 056
    • Zobrazit profil
    • E-mail
Re:DOM struktura a ID
« Odpověď #2 kdy: 16. 05. 2013, 09:33:35 »
díky...
ano právě tagem <embed> vkládám svg dokumenty a skoro všechny obsahují mnoho stejných ID. Pozoruji ovšem problém a zatím nedokážu říct co je příčinou.

mám články obsahující záložky(taby) a na tyto záložky odkazuju ze zmíněných svg obrázků
struktura záložek je v každém článku stejná jen se mění obsah
takto si odchytávám element(tab) z článku:
var tab1 = $$('.nn_tabs_nav ul li:nth-child(1) span a ');
takto si odchytnu id ze svg obrázku:
var sockel = svgElement.getElementById("sockel-contour");
a poté na tyto id poštvu funkci:
sockel.addEventListener("mousedown",function(){tab6[0].click()});

no a problém se projevuje tak, že když otevřu první ze článků, proklikám části svg obrázku čímž se přepínám mezi záložkami článku tak to funguje do doby než skočím na jiný článek s jiným svg obrázkem a poté se vrátím na ten původní - tak přepínání tabů přestane fungovat
Nesmím zapomenou říct, že tento problém se objevuje jen v Google Chrome
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

ZAJDAN

  • *****
  • 2 056
    • Zobrazit profil
    • E-mail
Re:DOM struktura a ID
« Odpověď #3 kdy: 16. 05. 2013, 09:50:23 »
chrome element inspector hlasi:
Uncaught TypeError: Cannot call method 'addEventListener' of null

což vypadá jako by neměl id na které se má listener posadit, ale proč?
vždyť to id už jednou měl a pracoval  s ním, jen jsem se přepnul na jiný článek a poté vrátil na původní a ID už jsou nezachytitelná? divné
a to js soubor linkuju jak do svg tak v hlavním dokumentu, takže by mělo být zaručeno, že se vždy načte
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

none_

Re:DOM struktura a ID
« Odpověď #4 kdy: 16. 05. 2013, 14:58:34 »
No to jsi moc informaci neposkytl. Nejlepší by bylo ukázat kód. Popřípadě si to projdi v debug módu a uvidíš, co je špatně.