Frage

Ich baute einige einfache Registerkarten, die bei Anklicken die versteckten div zeigen. Sehr einfach. Alle funktioniert gut, außer im Internet Explorer. Aus irgendeinem Grund, obwohl ich die jQuery .show () Funktion verwenden, wird es nicht die versteckten div gesetzt anzuzeigen. Block, überlässt es aber nur versteckt, und es ist sehr frustrierend

Beispiel Seite: http://www.puc.edu/alumni/give-puc

jQuery für Registerkarten:

$('#teamTabs li').click(function() {
 $('#teamTabs li').removeClass('selected');
 $(this).addClass('selected');
 $('.teamTab').hide();
 var id = $(this).attr('id');
 if (id == 'teamTab1') {
  $('#team1').show();
 } else if (id == 'teamTab2') {
  $('#team2').show();
 } else if (id == 'teamTab3') {
  $('#team3').show();
 } else if (id == 'teamTab4') {
  $('#team4').show();
 }//end else if

 return false;

});//end click

Irgendwelche Ideen, warum IE würde das div nicht gesetzt angezeigt werden: Block

War es hilfreich?

Lösung

Ich weiß, Sie haben bereits herausgefunden das Problem woanders war, aber für andere das zu finden, später (und dies weg zu erhalten, die keine Antworten Liste), können Sie abspecken / vereinfachen Code ziemlich viel:

$('#teamTabs li').click(function() {
  $(this).addClass('selected').siblings().removeClass('selected');
  $('.teamTab').hide();
  $('#team'+ this.id.replace('teamTab','')).show();
  return false;
});

Andere Tipps

Ich hatte ein ähnliches Problem. Ich fand, dass IE tatsächlich Anzeige ändert zu blockieren, aber es hat auch jeder display:none; Block hat visibility:hidden;

Ich konnte meine Elemente bekommen richtig zu zeigen, indem Sie folgendermaßen vorgehen:

$('#team1').show(); // shows for all browsers but IE
if($.browser.msie){
   $('#team1').css({"visibility":"visible"});
}

Ich fand dies durch die Verwendung von zwei Warnungen nach meiner Ausgabe zu den beiden möglichen CSS-Elementen Eingrenzung, die meine HTML verbergen konnte: display: none; und Sichtbarkeit. versteckt

garantiert, dass, wenn Sie tun, diese Warnung direkt nach $('#team1').show();

alert( $('#team1').css("display")); Ihr Anzeigeblock sein wird und alert ($ ( '# team1') CSS ( "Sichtbarkeit").); Ihre Sichtbarkeit ausgeblendet.

Scheint, wie IE blockiert automatisch ausgeblendet, wenn sie auf eine Anzeige von „none“ in der CSS gesetzt werden und dann geändert über JQuery. Es scheint auch, als ob dies nicht ein Problem für Elemente, die als Anzeige definiert sind: Block; Diese Elemente sollten immer in Ordnung, so lange sein, wie Sie sie definierten zuerst in der CSS.

Hope, das hilft jemand da draußen dieses Problem mit:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top