Autor Zpráva
Goldie
Profil *
Ahoj,

mám problém s jQuery 1.6.2 v IE8 a IE7. Mám vytvořenou stránku, kde mám script, který počítá vzorce dle kliknutí uživatele, následně vypisuje výsledek do elementu s jedinečným ID. Skript zdá se být bez chyby, kontrolovalo mi jej více lidí, a nikdo tam chybu nevidí. Při použití konzole v Opeře, FF, Chromu nebyla nalezena žádná chyba v žádném include js souboru ani v samostatných js částech v kodu. V IE9 konzole také tvrdí že je vše v pořádku a skript v něm hlavně funguje úplně stejně jako ve FF, Opeře, Chrome, Safari.

pokud si nechám stránku načít ve standardech IE8 či IE7 skript nefunguje, a konzole řve:

SCRIPT65535: Neočekávané volání metody či přístup k vlastnosti.
jquery-1.6.2.js, řádek 5601 znak 5

Nástroj pro ladění křičí totéž akorát v jiném pořadí.

Když se podívám, co se nachází na daném řádku:

    append: function() {
        return this.domManip(arguments, true, function( elem ) {
            if ( this.nodeType === 1 ) {
                this.appendChild( elem ); //řádek 5601
            }
        });
    },


nezdá se mi, že by tam byla chyba. Vyzkoušela jsem jquery 1.6.2 i starší verze, i .min.js i ty úplně min, i tu full, kterou jsem nakonec nechala. U všech chyba ukazuje na řádek viz výše.

v tagu script mám definováno, že se jedná o text/javascript, kod je validní, a jak jsem psala je funkční ve všech prohlížečích vyjma IE8 a IE7. Vzhledem k tomu, že chyba ukazuje na řádky v souboru, který nabízí přímo jquery.com, nemyslím si že by byla chyba na mé straně...

Problém se vyskytne při eventu
var cislo = $(this).text();
$("#selektor").click(function() {
        cislo = parseInt(cislo.split(' ').join(''));
            nasobitel = 1.2;
            soucet = nasobitel * cislo;
            $("#vysledek-vypoctu").html(Math.ceil(soucet));
              $('#zprava').html($('#podrzet_zpravu').text() + $('#vysledek-vypoctu').text() + ' Kč');
});


všechny proměnné jsou definovány, a IDčka existují a existují pouze jednou v celém dokumentu. Tohle jje příklad kde mi tov IE7 a 8 umře a vypíše výše uvedené chyby...

na click na element (odkaz obsahující jako anchor cenu s mezerami a "Kč") se sebere pouze číslo - tedy seberu mu mezery a Kč. s tím dále pracuji - vynásobím potřebným číslem a vypíšu do elementu s id vysledek-vypoctu a zaokrouhlím, a zároven vypíšu s nějakým předdefinovaným textem v textarea kvůli odesílání na mail.

To je v podsataě jediné místo kde by mohla být chyba. Jenže proč by křičela jen jedna konzole a ještě jen v IE7 a IE8, a ostatní v IE9, FF, Opera, Chrome ne? aproč to všude jinde krom těch dvou nefunguje ? :)))

Díky předem všem za radu, sem z toho už zoufalá a nenapadá mě jak bych to oháčkovala...

Moderátor Chamurappi: Titulek „jquery IE8 IE7“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
Goldie
Profil *
jquery používám z této adresy <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.js"></script>
_es
Profil
Goldie:
Vzhledem k tomu, že chyba ukazuje na řádky v souboru, který nabízí přímo jquery.com, nemyslím si že by byla chyba na mé straně...
To je zavádzajúci predpoklad.
To, že chyba vzniká v kóde jQuery, neznamená, že je chybný jQuery kód, ale najskôr ide o chybné použitie nejakej jQuery metódy, alebo o nejakú úplne inú chybu.
V dôsledku čoho presne chyba vznikla, sa však z neúplných informácií vyveštiť nedá.
Kde máš definované premenné nasobitel a soucet?
Ak nikde a máš tam niekde elementy s id alebo name s takými reťazcami, tak je chyba jasná.
Goldie
Profil *
_es:
mám pocit, že si nepřečetl do konce co jsem psala. ještě jednou, všechny proměnné definované jsou, všechny elementy s ID které jsou v js kodu použity v kodu také jsou, stejně tak name. Jediná konzola která v okamžiku eventu .click na element s ID které EXISTUJE a JE JEDINEČNÉ zakřičí danou chybu je konzola IE8 a IE7. ostatní konzole tvrdí, že je to na event .click naprosto v pořádku a skript se provede.

takže všechny proměnné jsou definované varem, všechny ID existují a jsou jedinečné, vše potřebné name má. i nasobitel a soucet jsou definovane v $(document).ready(function() {}); ve které se nachází i výše uvedený kod.
_es
Profil
Goldie:
Je teda „vše“, až na to, že je chyba zistiteľná jedine tak veštením.
Ak chceš pomôcť s detekciou chyby, dodaj „živú“ ukážku.

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