Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Динамическое изменение высоты (https://javascript.ru/forum/events/7620-dinamicheskoe-izmenenie-vysoty.html)

jaffar 11.02.2010 00:03

Динамическое изменение высоты
 
Используется достаточно популярный скрипт следующего содержания - http://javascript.ru/paste/4b731de8

При динамическом появлении/исчезании элементов на странице (в зависимости от выбора в <select>), соответствующим образом должна изменяться и высота блока. Этого не происходит именно динамически, т.е. сразу. Но если, например, без дополнительных манипуляций открыть/закрыть Firebug, то высота блока моментально изменяется нужным образом.

Подскажите, пожалуйста, как добиться данного эффекта?!

sergdev 11.02.2010 00:54

Думается мне ,что необходимо посмотреть в сторону вот этого куска кода здесь
__expand.apply(__object, [( event || window.event)])

Почему так думаю ? Потому что судя по всему у вас не срабатывает(при выборе элемента из select, а собственно с чего он должен срабатывать ?,
025	    if (window.addEventListener) {
026	      window.addEventListener('resize', function(event) {return __expand.apply(__object, [( event || window.event)])}, false);
027	    } else if (window.attachEvent) {
028	      window.attachEvent('onresize', function(event) {return __expand.apply(__object, [( event || window.event)])});
029	    }

в приведенном коде я не увидел как на него вешается handler) handler, который вешается на window.onresize. В то же время, как при открытии и закрытии фаербага этот хендлер срабатывает (опа, onresize происходит)
Тобишь надо мануально дергать первый процитированный мной кусок кода. Но думается мне это не оптимальное решение, поскольку он проверяет все элементы у которых будет класс maxheight, но(опа) по всей видимости у вас будет ограниченное множество элементов, которые надо будет растягивать по полной, поэтому лучше этот скрипт переделать так, чтобы он мог работать по заданному множеству элементов


Часовой пояс GMT +3, время: 04:20.