#jquery #css
#jquery #css
Вопрос:
У меня есть два div (#mosaicBlog и #mosaicAside). У меня в CSS для #mosaicAside установлено значение overflow hidden, и я хочу установить #mosaicAside так, чтобы он всегда был высотой #mosaicBlog (динамическая высота от страницы к странице).
Я думал, что это сработает, но, похоже, это не работает. Я думаю, это может быть просто проблема с синтаксисом.
$(function(){
var curHeight = parseInt($("#mosaicBlog").height());
newHeight = Math.ceil(curHeight/189) * 189 - 7;
alert(newHeight );
$("#blogAside").height(newHeight);
});
Будем признательны за любую помощь.
Комментарии:
1. сделайте оповещение о новой высоте, получаете ли вы заданную высоту
2. Когда я делаю
alert(newHeight);
, это дает правильную высоту, но не устанавливает ее в #blogAside3. Можете ли вы пояснить, что это, похоже, не работает, означает? Это не установка какой-либо высоты, это не установка новой высоты и т.д.?
4. @Paul Sham: Конечно. Похоже, работает в том, что jQuery получает правильную вычисленную высоту #mosaicBlog. Это значение отображается, когда я создаю предупреждение, но оно не устанавливается на высоту blogHeight. Если я изменю встроенную высоту css #blogAside с помощью firebug на предупрежденную высоту #mosaicBlog, это сработает. Однако по какой-то причине
$("#blogAside").height(newHeight);
либо не является последней функцией jQuery для установки высоты в #blogAside (хотя это последняя функция в файле js), либо она вообще не устанавливается.
Ответ №1:
Используйте $(function(){
вместо $({
Комментарии:
1. @Keefer: нет, замените на
$({
с$(function(){
в вашей первой строке. p.s. — вы упомянули в своем сообщении, что хотите, чтобы высота была такой же, как у вашего другого DIV. ну, ваша математика неверна. На самом деле, вам вообще не следует заниматься математикой, если вы хотите, чтобы она была той же высоты.2. @Crayon Violent: Согласен, но, похоже, без какой-либо математики это на несколько пикселей меньше. Я пробовал
$(function(){ var blogCurHeight = parseInt($("#mosaicBlog").height()); $("#blogAside").height(blogCurHeight); alert(blogCurHeight); });
, но значение, о котором он предупреждает, находится в пределах нескольких пикселей, но оно не устанавливает его в #blogAside div (не переопределяя встроенное значение высоты)3. Если вы захватываете высоту
#mosaicBlog
, устанавливаете#blogAside
и она отклоняется на несколько пикселей, учитывали ли вы отступы?
Ответ №2:
попробуйте после загрузки документа
$(document).ready( function() {
var curHeight = parseInt($("#mosaicBlog").height()),
newHeight = Math.ceil(curHeight/189) * 189 - 5;
$("#blogAside").height(newHeight );
});
Комментарии:
1. Извините, это завернуто в функцию document.ready в моем глобальном site.js файл.
2.
alert(newHeight);
задает правильную высоту #mosaicBlog, но не устанавливает ее на #blogAside3. каков результат
alert(newHeight);
4. На странице, которую я просматриваю, 1317, что соответствует высоте #mosaicBlog. При проверке в #blogAside задается встроенная высота, но мой jQuery является последним битом в файле, поэтому он должен запускаться последним (и устанавливать высоту)