Autor Zpráva
RiZe
Profil
Mám JS funkci na vytvoření prvku (pseudo-okna) na webové stránce, který má na zavírací tlačítko vázanou událost onMouseClick a funkci pro zavření pseudo-okna. Okénko vytvářím tímto kódem:


windowId = lastId + 1; // ID okénka, lastId má na začátku 0, každým vytvořeným oknem se zvětší o jedna, podle něho poznám, které pseudo-okno vyvolalo událost jako je zavření

// Hlavní DIV okna
window = document.createElement('div');
window.setAttribute('class', 'window');
window.setAttribute('id', 'window-' + windowId);

// Zavírací tlačítko
close = document.createElement('a');
close.setAttribute('class', 'window-close-button');
close.setAttribute('id', 'close-' + windowId);
close.setAttribute('href', '#');
close.setAttribute('onmouseclick', 'windowClose(' + windowId + '); return false;'); // Funkce na zavření okna

// Tady je další balast, ovládací prvky atp.

document.getElementById('page-pack').appendChild(window); // Vykreslení hlavního DIVu do obalovacího DIVu stránky (page-pack)
window.appendChild(close); // Vykreslení zavíracího tlačítka do okna



Můj problém je následující: načtu stránku a tlačítkem, které vyvolá výše napsaný kód vytvořím okénko se zavíracím tlačítkem. Vše funguje, jenže. Když kliknu na zavírací tlačítko, stránka se obnoví (href="#") jakoby tam atribut onmouseclick vůbec nebyl, přitom funkce na zavření okna funguje, což jsem vyzkoušel na okně pěvně napsaného do HTML kódu. Nevíte někdo kde je zakopaný pes? Události onMouse... se mi v takovémto generovaném okně prostě nedaří rozběhat, ID okna a vše se nastaví správně.
RiZe
Profil
Jejda, onmouseclick asi neexistuje :X.
Chamurappi
Profil
Reaguji na RiZe:
Proč nepoužíváš normální vlastnosti HTML DOMu? Metodou setAttribute nejdou takto v Exploreru nastavit události.
Jednou z příčin nefunkčnosti bude i název proměnné „window“. Ta už je obsazená objektem okna prohlížeče a nenechá se přepsat.

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