Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.04.2011, 13:17
Новичок на форуме
Отправить личное сообщение для AkeLLbl4 Посмотреть профиль Найти все сообщения от AkeLLbl4
 
Регистрация: 26.02.2011
Сообщений: 9

Не срабатывает условие
var sidebar = document.getElementById("sidebar");
var content = document.getElementById("content");
var sh = sidebar.offsetHeight;
var ch = content.offsetHeight;
if (sh>ch) { $('#content').height(sh); }

Подскажите пожалуйста, почему не срабатывает условие?
Без условия нормально подставляется.
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2011, 13:30
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от AkeLLbl4
не срабатывает условие
Такого не бывает. Условия "срабатывают" всегда. Посмотри, чему равны sh и ch.
Ответить с цитированием
  #3 (permalink)  
Старый 11.04.2011, 16:06
Новичок на форуме
Отправить личное сообщение для AkeLLbl4 Посмотреть профиль Найти все сообщения от AkeLLbl4
 
Регистрация: 26.02.2011
Сообщений: 9

Я думал может быть сам где то ошибся, но видимо нет.
Когда меняю ch>sh и задаю height для #sidebar все работает. Но нужно делать именно так
Ответить с цитированием
  #4 (permalink)  
Старый 11.04.2011, 16:36
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от AkeLLbl4 Посмотреть сообщение
Я думал может быть сам где то ошибся, но видимо нет.
Когда меняю ch>sh и задаю height для #sidebar все работает. Но нужно делать именно так
добавь в код

alert( sh > ch ? "Да":"Ошибка" )


и узри!
Ответить с цитированием
  #5 (permalink)  
Старый 12.04.2011, 16:12
Новичок на форуме
Отправить личное сообщение для AkeLLbl4 Посмотреть профиль Найти все сообщения от AkeLLbl4
 
Регистрация: 26.02.2011
Сообщений: 9

Узрел "ДА", но высота блока не равняется =(
Для ясности может кто-нибудь поможет http://vg-travels.ru/russia/6
Блок #content должен вытянуться во всю высоту.
Ответить с цитированием
  #6 (permalink)  
Старый 13.04.2011, 10:25
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

если в буле true, то высота виновата! она 118 равна ( ch ), а sh ~ 500

$(function(){

$('#content').height(document.getElementById("sidebar").offsetHeight)  })

при ПОЛНОЙ загрузке страницы это надо делать
Ответить с цитированием
  #7 (permalink)  
Старый 19.04.2011, 12:29
Новичок на форуме
Отправить личное сообщение для AkeLLbl4 Посмотреть профиль Найти все сообщения от AkeLLbl4
 
Регистрация: 26.02.2011
Сообщений: 9

$(document).ready(function(){

	$('ul.menu').removeClass();
	$('#nav>ul').find('ul').parent().each(function(i){
		$(this).hover(function(e){
			var $targetul=$(this).children('ul')
			if ($targetul.queue().length<=1)
				$targetul.slideDown(300)
			},
			function(e){
				$(this).children('ul').slideUp(200)
			}
		);
	});
	
	$('#print a.print').click(function() {
		$(this).parent().find('.tooltip').fadeIn(300);
		return false;
	});
	$('#print .tooltip a.button').click(function() {
		$(this).parent().fadeOut(300);
	});
	
	$('.term-info').find('.item').css('display', 'none');
	$('.term-info').find('a').click(function() {
		$('#item-0').slideToggle(2000);
		return false;
	});
	
	var sh = document.getElementById("sidebar").offsetHeight;
	var ch = document.getElementById("content").offsetHeight;
	if(sh>ch) { $('#content').height(sh); }
});

Вот полный скрипт, тут еще всякая фигня делается.
Думал виновата высота ch или sh, поэтому пробовал округлять до целого, тоже не помогло.
Попробовал проверить заполняются ли переменные с помощью
alert(sh);
alert(ch);

Передаются адекватные целые значения.

Последний раз редактировалось AkeLLbl4, 19.04.2011 в 12:55.
Ответить с цитированием
  #8 (permalink)  
Старый 19.04.2011, 21:33
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сравните:
<div style="background-color:#FF0000;" height="300px">12345</div>
<br>и<br>
<div style="background-color:#FF0000; height:300px">12345</div>

Попробуйте попроще написать свой код и менять высоту не атрибута объекта, а высоту в его стиле:
document.getElementById("content").style.height=300;
Ответить с цитированием
  #9 (permalink)  
Старый 19.04.2011, 22:04
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Маэстро, нужно указывать единицы измерения... Например

document.getElementById("content").style.height='300px';
Ответить с цитированием
  #10 (permalink)  
Старый 20.04.2011, 20:16
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от ksa Посмотреть сообщение
Маэстро, нужно указывать единицы измерения... Например
document.getElementById("content").style.height='300px';
а я не указываю. и кавычки не ставлю. мне влом. проверил на многих броузерах - работает без проблем. и по-умолчанию воспринимается как число в пикселях.
покажете где это не сработает?
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Когда срабатывает image.onload? okaterynchuk Общие вопросы Javascript 3 30.07.2014 18:22
Не срабатывает обработчик window.onload. Alex82 Events/DOM/Window 16 22.02.2013 21:06
Не срабатывает при отсутствии в теле документа yuriii jQuery 3 06.05.2010 17:45
Условие типа для flv nemo Серверные языки и технологии 1 29.01.2010 17:52
Не срабатывает onMouseMove на нижнем слое. voy Элементы интерфейса 2 07.05.2009 20:40