У меня есть эта странная проблема: у меня есть два div, меню и контент.
<div id="menu">
<a href="#" id="link1"> Link </a>
<a href="#" id="link2"> Link </a>
</div>
<div id="content">
</div>
Когда вы нажимаете на ссылку, div загружается с содержимым разных html-файлов:
$('#link1').click(function() {
$('#content').load('page1.html');
}
$('#link2').click(function() {
$('#content').load('page2.html');
}
...и это работает :-)
Таким образом, #content изменяет свою высоту, потому что он "заполнен" файлами html, и я хочу, чтобы #menu занимал ту же высоту, что и #content< /strong>, поэтому я добавил
$("#menu").height($("#content").height());
в функциях click(), но высота #content вычисляется перед загрузкой файлов, поэтому это не работает. Как я могу определить, когда контент загружен, и после этого изменить размер?
PS: Проблема также в загрузке страницы: я добавил
$('#prod1').click();
внутри $(window).load для имитации щелчка по первому пункту меню; #content заполняется корректно, но высота просчитана.. Пробовал отлаживать с помощью console.log, отслеживая высоту div, но он выдал 0, хотя я поставил его после функции загрузки.
Единственным (плохим) решением было использование функции setInterval, постоянно отслеживающей высоту #content и устанавливающей ту же высоту в #menu.