| Autor | Zpráva | ||
|---|---|---|---|
| Honza_n Profil * |
#1 · Zasláno: 10. 7. 2010, 19:01:15
Ahoj,
script který mi funguje v FF a OP mi nefunguje v IE. Nástroj pro ladění mi v konzole píše: Objekt tuto vlastnost nebo metodu nepodporuje. jquery-1.4.2.min.js, řádek 74 znak 407 ř. 74, znaku 407 předchází toto {for(var H in n.filter)a od znaku 407 následuje toto: if((t=n.leftMatch[H].exec(g))!=null&&t[2]) Je to chyba v Jquery nebo špatné používám Jquery? Ještě následuje chyba v mém scriptu:
dr=$("select[name=druh]","fieldset#gramar");
|
||
| Chamurappi Profil |
#2 · Zasláno: 10. 7. 2010, 20:44:41
Reaguji na Honzu_n:
Čísla řádků v chybových hláškách Exploreru jsou zpravidla o jeden řádek posunutá. Ale na tom asi nezáleží, z jednoho řádku kódu stejně nikdo neuhodne problém. Bez odkazu na živou ukázku nemá smysl nad tím přemýšlet. |
||
| Honza_n Profil * |
#3 · Zasláno: 10. 7. 2010, 21:47:02
Trvalo mi to přes hodinu, ale tady to je:
Ukázka kódu 1 |
||
| Honza_n Profil * |
#4 · Zasláno: 10. 7. 2010, 21:58:51
No a když už jsem v tom nahrávání tak jsem tam nahrál ještě jeden script který mi také nejede v IE. Je to indikátor délky textu - bez obrázků ale nefunkční*, ale jde o to odstranit chybu v JS. Nelekni se prosím hrozivě vypadajícího pokusu s funkcí bind. Byl to jen takový pokus s JQuery.
Ukázka kódu 2 * - a nedodělaný, zatím nemám vymyšleno jak zastavit uživatele aby pokračoval ve psaní. |
||
| Chamurappi Profil |
#5 · Zasláno: 11. 7. 2010, 03:31:00
Reaguji na Honzu_n:
„Ukázka kódu 2“ Vyhoď tuhle čuňárnu: Object.prototype.NextSibling = function ()
{
var e = this.nextSibling;
while ( e.tagName == "undefined") e = e.nextSibling;
return e;
}Objectu, proto ti to nefunguje.
„Je to chyba v Jquery nebo špatné používám Jquery?“ Řekl bych, že špatně používáš JavaScript. Ono jQuery moc nepočítá s tím, že narazí na tvé funkce NextSibling, PreviousSibling a attrCount kdykoliv prochází jakýkoliv (třeba svůj) objekt smyčkou for..in. Zapiš si za uši: Na Object.prototype nesahat!
Celý ten tvůj skript mi připadá poněkud zmatený. Jako by sis vzal z každé historické epochy skriptování na webu typické neduhy a smíchal je dohromady. |
||
| Honza_n Profil * |
#6 · Zasláno: 11. 7. 2010, 09:40:00
Takže ten prototyp jak jsem ho použil tady nemohu prakticky vůbec kvůli IE použít...
Tak tenhle prototyp mám taky vymazat?
Array.prototype.inArray = function (value) {
var i;
for (i=0; i < this.length; i++) if (this[i] === value) return true;
return false;
};
A mám tedy napsat normální funkci na to jo? S použitím např. inArray(arr, key);? Ta funkce NextSimbling je z toho druhého skriptu. Hledal jsem na netu jak zpřístupnit vedlejší element. Tam jsem se dočetl, že Mozilla Firefox vidí mezi dvěma tagy mezeru white space \n <p> <p> a ten znak považuje za následující element. Tudíž toto jsem bral jako řešení. Jestliže ale toto nebere IE, pak jak vyřešit tento problém v kódu 2.? Mám to tedy udělat bez prototypu a s pomocí funkce, jo? Problém je v tom, že při tom hledání na internetu mohu narazit na staré články s nespolehlivými informacemi. |
||
| Honza_n Profil * |
#7 · Zasláno: 11. 7. 2010, 10:14:52
Už jsem si to našel na internetu:
http://arstechnica.com/civis/viewtopic.php?f=20&t=185317 A tam se píše že lze použít framework "Prototyp". Vlastně bych mohl použít i Jquery, ale zas je otázka zda je to nutné. Už vím kde jsem udělal chybu. V původním návodu nebyl použit prototyp, ale obyčejná funkce. Možná by jsi tu informaci mohl přidat do diskuse "Časté potíže, zajímavosti a poučné debaty". |
||
| Honza_n Profil * |
#8 · Zasláno: 11. 7. 2010, 10:39:44
Honza_n:
„kdykoliv prochází jakýkoliv (třeba svůj) objekt smyčkou for..in. Zapiš si za uši: Na Object.prototype nesahat!“ A to se týká pouze této smyčky nebo ještě nějakých jiných smyček? |
||
|
Časová prodleva: 15 let
|
|||
0