문제

나는 클릭하면 숨겨진 div를 보여주는 간단한 탭을 만들었습니다. 매우 간단합니다. IE를 제외하고는 모두 잘 작동합니다. 어떤 이유로 jQuery .show () 함수를 사용하고 있지만 숨겨진 div를 표시하도록 설정하지는 않지만 블록을 표시하지 않지만 숨겨져있는 상태에서 매우 실망 스럽습니다.

페이지 예측 페이지 : 예측 http://www.puc.edu/alumni/give-puc

탭 용 jQuery :

$('#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

IE가 DIV를 표시하도록 설정하지 않는 이유는 무엇입니까?

도움이 되었습니까?

해결책

나는 당신이 이미 문제가 다른 곳이라는 것을 알아 차렸다는 것을 알고 있지만, 다른 사람들에게는 이것을 나중에 찾아서 (그리고 No Answers List에서 이것을 얻으려면) 코드를 약간 낮추거나 단순화 할 수 있습니다.

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

다른 팁

비슷한 문제가있었습니다. IE는 실제로 디스플레이가 차단되기 위해 변경되고 있음을 알았지 만 각각을 만들었습니다. display:none; 블록이 있습니다 visibility:hidden;

다음을 수행하여 요소를 올바르게 표시 할 수있었습니다.

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

나는 내 문제를 내 HTML을 숨길 수있는 두 가지 가능한 CSS 요소로 좁힌 후 두 개의 경고를 사용하여 이것을 찾았습니다 : 디스플레이 : 없음; 가시성 : 숨겨진.

이 경고를 직후에 보장합니다 $('#team1').show();

alert( $('#team1').css("display")); 귀하의 디스플레이는 블록 및 경고입니다 ($ ( '#team1'). CSS ( "Visibility")); 당신의 가시성은 숨겨 질 것입니다.

IE는 CSS에서 "None"의 표시로 설정된 다음 jQuery를 통해 변경 될 때 블록을 자동으로 숨기는 것처럼 보입니다. 또한 디스플레이로 정의 된 요소의 문제가 아닌 것 같습니다 : 블록; 이 요소는 CSS에서 먼저 정의 한 한 항상 괜찮아 야합니다.

이것이 다른 사람 이이 문제를 겪는 데 도움이되기를 바랍니다. :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top