Jquery, IE8 и селекторы классов - PullRequest
0 голосов
/ 15 марта 2012

У меня есть сетка Telerik, размер которой я изменяю, когда у пользователя вид «развернут». Вызываемая функция выглядит следующим образом:

   //Happens whenever the window is resized
    function sizeContent() {
        var newHeight = $(window).height() - 191;
        var calcHeight = newHeight + "px !Important";
        $("div.Gridfullscreen").css("height", calcHeight);
    }

   //Happens when a user goes into 'full screen' mode by clicking a button  function 
    toggleFullScreen() {

    $('div.grid').toggleClass('fullscreen')

    //Height reset (just in case we are toggling back)
    $('div.t-grid-content').css("height", "400px !Important")
    $('div.t-grid-content').toggleClass('Gridfullscreen')

    //If we are in full screen mode go ahead and update the grids size
    sizeContent();
}

Это прекрасно работает на Chrome, однако на нашем скрипучем корпоративном IE8 не получается. NewHeight var корректно заполняется высотой окна минус заголовки и т. Д., Однако, линия высоты .css не вступает в силу, и высота не изменяется.

Жизнь начинается так: <div class="t-grid-content" style="height:400px">...</div>

И становится: <div class="t-grid-content Gridfullscreen" style="height: 418px !important; ">...</div>

А потом снова возвращается. Я смотрю на это в течение нескольких часов, поэтому любая помощь будет очень полезна, чтобы заставить это вести себя на IE8.

С уважением,

Mark

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Удалить эту строку:

var calcHeight = newHeight + "px !Important";

Изменить

$("div.Gridfullscreen").css("height", calcHeight);

на

$("div.Gridfullscreen").css("height", newHeight);

Кроме того, где в функции toggleFullScreen не выполняется логика?Попробуйте:

toggleFullScreen() {

    $('div.grid').toggleClass('fullscreen')

    if($('div.grid').hasClass('fullscreen')) {

        //Height reset (just in case we are toggling back)
        $('div.t-grid-content').css("height", "400px !Important")
        $('div.t-grid-content').toggleClass('Gridfullscreen')

        //If we are in full screen mode go ahead and update the grids size
        sizeContent();
    }
}
0 голосов
/ 15 марта 2012

Неосторожно я оставил правило в файле css, которое в Chrome было переопределено jquerys $("div.Gridfullscreen").css("height", calcHeight);, но в IE 8 оно не было!

  .Gridfullscreen
  {
    background-color:White;
    height:400px !Important; 
  }

Удалил вторую строку, и IE8 начал вести себякак хром.

Спасибо за помощь, Тим.

...