2009-04-07 4 views
7

ich ein JQuery Akkordeon auf einer meiner Seiten implementiert haben die folgenden OptionenJQuery Akkordeon Probleme mit IE 6

$("#accordion").accordion({ header: "h3", alwaysOpen: false, active: false, autoHeight: false}); 

Dies funktioniert hervorragend in Firefox und in IE7 (now that I've upgraded to v1.7 of jquery ui)

jedoch in IE6, so ziemlich alle Inhalte von jedem Akkordeon verschwinden (ich bin mit einem einzigen <select> Tag ?!)

Wenn ich die AutoHeight-Option auf True wie this answer ändern, dann ist alles wieder in Ordnung, außer dass Ich verliere den netten Vorteil, dass die Akkordeons gut bemessen sind, und einige von ihnen haben viel Leerraum in sich.

Kennt jemand eine Behebung, damit ich noch AutoHeight = false haben kann?

Antwort

0

Meine Problemumgehung dafür war, AutoHeight True für IE6 und False für alle anderen Browser zu verwenden.

6

Mit dem gleichen Problem konfrontiert habe ich eine Lösung gefunden, die über alle Browser funktioniert, ohne den AutoHeight-Parameter zu ändern.

* html .clearfix { height: 1%; } 

Und dann fügen Sie den Inhalt div nach dem h3:

nur eine Klasse zu Ihrem CSS wie folgt hinzu (so:)

<h3>Header</h3> 
<div class="clearfix">Whatever</div> 

Das Problem ist eigentlich ein IE6 Problem mit unsichtbarem Text-Rendering. Ich habe es auf Inhalt getestet, der ungeordnete Listen und komplexe verschachtelte divs und mehr enthält, alles funktioniert gut. Lass es mich wissen, wenn das der Trick ist!

+0

es funktionierte für mich. danke – TigerTiger

14

Hinzufügen von .ui-Akkordeon-Inhalt {Zoom: 1; } zu meinem CSS das Problem für mich behoben:

<link type="text/css" href="css/dark-hive/jquery-ui-1.7.2.custom.css" rel="stylesheet" /> 
<style type="text/css"> 
     .ui-accordion-content{ zoom: 1; } 
</style> 
+0

Danke das war genau was ich brauchte um meine Probleme zu lösen. –

+0

Großartig! Es hat auch für mich funktioniert! Danke vielmals! – tucaz

1

Das Problem scheint mit einem IE6-Rendering-Fehler verbunden sein. Das hat das Problem für mich behoben.

// This is required for IE6. 
if (jQuery.browser.msie && jQuery.browser.version.substr(0,1)<7) 
    jQuery('#accordion *').css('zoom', '1');