jQuery & IE Absturz auf $ ('# someDiv'). hide ();

9

Nach einer Weile kratze ich mich am Kopf und gehe "huh?" Ich versuchte herauszufinden, warum der IE beim Laden einer meiner Seiten, die mit jQuery-Güte geladen waren, sofort abstürzen würde, und beschränkte den Täter auf diese Zeile.

%Vor%

Und wenn ich sage, dass IE abstürzt, meine ich, dass es komplett abstürzt und versucht, seinen Webseiten-Wiederherstellungs-Unsinn zu machen, der scheitert.

Ich führe jQuery 1.4.2 und verwende IE 8 (habe nicht mit anderen Versionen getestet)

meine aktuelle Problemumgehung ist dies:

%Vor%

Aus irgendeinem Grund glaube ich, dass meine IE-Benutzer mit dieser Lösung nicht sehr zufrieden sein werden.

Das fragliche div hat eine Menge Inhalt darin und andere divs, die wieder versteckt und angezeigt werden, und all das funktioniert gut und gut, nur wenn das riesige Elternteil versteckt ist, springt der IE aus und ersticht sich selbst.

Ist jemand auf dieses Problem gestoßen oder hat es irgendwelche Vorstellungen davon, was schief läuft?

BEARBEITEN:

Alles ist in $ (document) verpackt .ready (function () {}); Und mein Code ist alles intern, also kann ich leider nicht verlinken.

EDIT: IE 8 Absturzcode gefunden

%Vor%

Ich habe keine Ahnung, warum dies Probleme im IE verursacht, aber hier ist das CSS

%Vor%

Die Verwendung einer ungeordneten Liste anstelle einer geordneten Liste führt zu keinem Absturz, aber sobald ich es zurückgebe, bekomme ich die Abstürze noch einmal, dieses Element muss nicht bestellt werden. Ich habe es nur dort als Schritte, die logisch machen Sinn, ich würde immer noch gerne wissen, warum das IE ausflippt.

Versteckt jQuery + IE + ein ol-Element = OMG IE FAIL? Oder gibt es eine Problemumgehung?

Es scheint, dass jedes Listenelement mit einem anderen Listenstil als none

betroffen ist     
Jimmy 02.04.2010, 15:13
quelle

5 Antworten

4

Dein Problem ist offensichtlich nicht div#questions selbst. Können Sie versuchen, alle Inhalte von div#questions zu entfernen (oder zu kommentieren) und jedes Element nacheinander hinzuzufügen, bis der IE erneut abstürzt?

Sobald Sie den Schuldigen gefunden haben, machen Sie dasselbe für dieses Element noch einmal, indem Sie seinen gesamten Inhalt entfernen und jedes Element wieder hinzufügen und nach jedem testen.

Mach so weiter, bis du die wahre Ursache des Problems gefunden hast. Ich weiß, das ist eine ziemlich Low-Tech-Lösung, aber oft ist es auch die schnellste.

    
Christopher Parker 02.04.2010, 16:17
quelle
1

Durchlaufen Sie den Code im IE-Debugger (mit einem nicht-minifizierten jQuery) und sehen Sie, in welcher Zeile er endet.

    
SLaks 02.04.2010 15:53
quelle
0

.hide() ist nur ein Wrapper, um den Elementstil auf display:none zu setzen. Hast du document.getElementById("#questions").style.display = "none" probiert, nur um zu sehen, ob das einen Unterschied macht? Es kann Ihnen helfen, genau festzustellen, ob jQuery selbst einen Konflikt verursacht.

    
Dan Diplo 02.04.2010 15:53
quelle
0

Deaktivieren Sie Erweiterungen.

Es ist extrem unwahrscheinlich, dass Javascript das einzige Problem ist.

    
kervin 02.04.2010 16:27
quelle
0

In meinem Fall wurde der Fiddler Ad-Don der Verursacher des IE auf mshtml.dll abstürzt.

    
Rui Marques 13.03.2012 16:39
quelle

Tags und Links