Почему jquery hide не работает должным образом в IE7? - PullRequest
3 голосов
/ 28 января 2011

У меня есть всплывающее окно с различными телами div, которое отображается в зависимости от нажатой кнопки.Приведенная ниже функция работает в IE7:

function openPopup(popupDiv){
    //The popup is a div with id name popupDiv
    //It contains several bodies such as
    //alertPopupDiv, uploadPopupDiv, removePopupDiv
    //The div id name of the body to show is passed to the function

    //First hide all the bodies
    $("#popupDiv div[id$=PopupDiv]").each(function (i)
     {this.style.visibility='hidden';});  

    //Now show the relevant div
    var div = document.getElementById(popupDiv);
    if(div != null)
      {div.style.visibility = 'visible';}

   //Now call the function to load the popup itself          
   loadPopup();
}

Но в идеале я хотел бы использовать намного более простую:

function openPopup(popupDiv){
    $("div[id$=PopupDiv]").hide();  

    $(popupDiv).show();

   loadPopup();
}

, что хорошо в Firefox и IE8, но не работаетв IE7 (он работает в первый раз, когда его вызывают, но если функция вызывает, откройте всплывающее окно с новым контейнером, он не сможет правильно отобразиться.

1 Ответ

2 голосов
/ 28 января 2011

использовать свойство inline или none

 $("#popupDiv div[id$=PopupDiv]").each(function (i)
         {this.style.display='none';});  

        //Now show the relevant div
        var div = document.getElementById(popupDiv);
        if(div != null)
          {div.style.display= 'inline';}
...