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 * |
#2 · Zasláno: 12. 7. 2011, 16:49:19
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 |
#3 · Zasláno: 12. 7. 2011, 18:43:51 · Upravil/a: _es
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 * |
#4 · Zasláno: 12. 7. 2011, 19:03:52
_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 |
#5 · Zasláno: 12. 7. 2011, 19:26:34
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. |
||
Časová prodleva: 13 let
|
0