2010-12-16 15 views
0

So habe ich ein jQuery Akkordeon, und in den Inhaltsbereichen habe ich einige Pseudo-Checkboxen mit Bildern erstellt. Dies funktioniert in allen Browsern aber IE 6/7 (die ich leider unterstützen muss). Was passiert, wenn ich einen Bereich umschalte/öffne, erscheinen die Checkboxen, bevor der Inhalt vollständig über die Animation geöffnet wird. Eine Möglichkeit besteht darin, Animationen für IE zu deaktivieren, aber das würde ich lieber nicht tun. Stattdessen hatte ich gehofft, dass es eine Möglichkeit gibt, Checkboxen über die Change/Change-Start-Funktion ein- und auszublenden. Allerdings scheint es, dass ich dies in der Change-Start-Funktion herausfinden muss, wenn der Inhalt sich ausdehnt oder kurz vor dem Zusammenbruch steht. Wenn es kollabiert, muss ich die Kontrollkästchen ausblenden, bevor die Animation beginnt. Ebenso muss ich in der Änderungsfunktion (die nach Abschluss ausgeführt wird) sehen, ob der Inhalt geöffnet oder geschlossen wurde. Wenn es geöffnet wurde, sollten wir die Kontrollkästchen darin anzeigen. Hier ist, was ich jetzt versuche, aber alles, was ich tun kann, ist, es zu verstecken, und es tut es immer, also denke ich, dass es auf der .ui-akkordeon-content-aktiven Klasse basieren wird:Finden Sie heraus, ob Inhalt in jQuery Accordion auf Änderungsereignis

$("#filter_accordion").accordion({ 
    header: "> div > h3", 
    autoHeight: false, 
    collapsible: true, 
    active: false, 
    change: function(event, ui) { 
     if (ui.newContent.hasClass(".ui-accordion-content-active")) ui.newContent.find(".checkbox").show(); 
    }, 
    changestart: function(event, ui) { 
     if (!(ui.newContent.hasClass(".ui-accordion-content-active"))) ui.newContent.find(".checkbox").hide(); 
    } 
    }); 

Jede Hilfe wird sehr geschätzt!

Antwort

0

Nun, bekam nie irgendwelche Antworten auf diese, aber für den Fall, dass jemand darüber läuft, fand ich eine Lösung. Die Sichtbarkeit des UI-Symbols hat mit einem anderen IE-Fehler zu tun, bei dem die Symbole beim Expandieren/Zusammenklappen von Abschnitten vertikal verschoben werden. ie67 ist nur ein boolescher Satz in meiner Vorlage, der beschreibt, ob wir einen dieser Browser verwenden (IE 6/7), falls das nicht offensichtlich ist.

$("#filter_accordion").accordion({ 
    header: "> div > h3", 
    autoHeight: false, 
    collapsible: true, 
    active: false, 
    changestart: function(event, ui) { 
     if (ie67) { 
     $("#filter_accordion .ui-icon").css("visibility", "hidden"); 
     ui.oldContent.find(".checkbox").hide(); 
     if (ui.newContent.is(":visible")) ui.newContent.find(".checkbox").hide(); 
     } 
    }, 
    change: function(event, ui) { 
     if (ie67) { 
     $("#filter_accordion .ui-icon").css("visibility", "visible"); 
     if (ui.newContent.is(":visible")) ui.newContent.find(".checkbox").show(); 
     } 
    } 
    }); 
Verwandte Themen