IE6 падает с этим JQuery - PullRequest
       29

IE6 падает с этим JQuery

0 голосов
/ 04 января 2010

Следующий код вызывает сбой IE6 каждый раз. Он продолжает обновлять страницу и вылетает через минуту:

$(window).bind("load resize", function () {
    var hnf = $('#header').height() + $('#footer').height();
    $('#main').height($(window).height() - (hnf));
    $('.fluid').height($('#main').outerHeight());
    $('#content').width($('#main').width() - $("#aside").width() - 90);
});

.. что вызывает это?

РЕДАКТИРОВАТЬ: Хорошо, "изменение размера" в $(window).bind("load resize", function () { вызывает его, как я могу исправить?

Большое спасибо за вашу помощь!

Ответы [ 3 ]

3 голосов
/ 04 января 2010

Похоже, что IE6 неправильно запускает событие onResize, даже когда изменяются размеры тела документа. Вот ссылка с дополнительной информацией .

Я бы искал не-jQuery способ делать то, что вы хотите. Если вы используете CSS для управления элементами фиксированного размера на своей странице, разве браузер не позаботится об элементах переменного размера самостоятельно?

2 голосов
/ 04 января 2010

Исправление Ссылки Drew Wills на звучат так, как будто они должны работать. Попробуйте:

var prevHeight;
$(window).bind("load resize", function () {
  var height = $(window).height();
  if ( prevHeight == height ) 
     return; // hack to prevent recursion in IE6
  prevHeight = height;

  // resize content
  var hnf = $('#header').height() + $('#footer').height();
  $('#main').height(height - (hnf));
  $('.fluid').height($('#main').outerHeight());
  $('#content').width($('#main').width() - $("#aside").width() - 90);
});

Не стесняйтесь делать это немного (прикрепите prevHeight к чему-то еще и т. Д.).

0 голосов
/ 04 января 2010

Я думаю, это может быть связано с тем, что вы пытаетесь установить высоту и ширину без CSS. Я не уверен, но если бы я собирался это сделать, я бы использовал метод JQUERY .css (), чтобы установить его высоту и ширину. так бы это выглядело,

$(window).bind("load resize", function () {
    var hnf = $('#header').height() + $('#footer').height();
    $('#main').css("height", ($(window).height() - hnf));
    $('.fluid').css("height", ($('#main').outerHeight()));
    $('#content').css("width", ($('#main').width() - $("#aside").width() - 90));
});

Это может не сработать. Я не проверял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...