Autor Zpráva
blast3r
Profil
Zdravím,

Snažím sa pracovať s jedným elementom <div id="PixelFrame"> a stále mi to hádže error.

JS Kód:
<script language="javascript" type="text/javascript">
        
        function Pixel(color) {
            this.color = color;
            this.drawPixel();
        }

        Pixel.prototype.drawPixel = function () {

            var frame = document.getElementById("PixelFrame");
            var pixel = document.createElement("div");


            switch (this.color) {
                case "white":
                    alert("white");
                    pixel.setAttribute("class", "WhitePixel");
                    break;
                default:
                    alert("err");
                    break;
            }

            frame.appendChild(pixel);
        }

        window.onload = initPage();

        function initPage() {
            Pixel1 = new Pixel("white");
        }

     </script>

HTML:
<body>
    <form id="form1">
    <div id="PixelFrame">&nbsp;</div>
    </form>
</body>

Na zvýraznenom riadku mi to hádže error:
Nelze načíst hodnotu vlastnosti appendChild: Objekt má hodnotu Null nebo není definován.
_es
Profil
Viď: Časté potíže, zajímavosti a poučné debaty » Rozdíl mezi voláním funkce a funkcí (27. riadok)
Chamurappi
Profil
Reaguji na blast3ra:
pixel.setAttribute("class", "WhitePixel");
Proč setAttribute? Proč ne pixel.className? Tohle ti nebude fungovat správně ve všech prohlížečích.
blast3r
Profil
_es:
Čítal som to, pred tým, než som pridal príspevok a zdalo sa mi, že mám všetko tak ako má byť.
Mohol by si mi to prosím ťa trošku rozpísať? :-)

Chamurappi:
No o tom som nevedel, ďakujem.
Chamurappi
Profil
Reaguji na blast3ra:
V době, kdy voláš funkci initPage, ještě element s daným id neexistuje. Voláš ji na řádku 27, ne až při události onload.
_es
Profil
blast3r:
Mohol by si mi to prosím ťa trošku rozpísať? :-)
V tom odkazovanom odseku to je rozpísané dosť, stačí si to len pozorne prečítať.
blast3r
Profil
Aha, takže stačilo odstrániť ()

        function initPage() {
            Pixel1 = new Pixel("white");
        }

        window.onload = initPage;

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