Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вызов функции из другой функции.. ?? (https://javascript.ru/forum/misc/4802-vyzov-funkcii-iz-drugojj-funkcii.html)

glutton 21.08.2009 15:50

Вызов функции из другой функции.. ??
 
Здравствуйте, уважаемые!
Помогите найти ошибку в коде, никак не заработает:

function Show(objId, hBlock) {  
	var obj = document.getElementById(objId); 
	if (obj.offsetHeight < hBlock) { 
		obj.style.height = (obj.offsetHeight + 10) + "px"; 
		setTimeout (function(){Show(objId, hBlock)}, 30); 
	}
}

function showLargePicture(src,w,h) {
	var div = document.getElementById('image_container');
	var leftvar = (screen.width-w)/2;
	var topvar = (screen.height-h)/4;
	div.style.top =  topvar + 'px';
	div.style.left = leftvar + 'px';
	div.className = 'big_image';
	var i= Show('image_container',h);
	div.innerHTML = '<img src=' + src + '>';
}


Выдает стандартное сообщение: "Предполагается наличие объекта".
Где ошибка? Все работало, пока не вставил функцию плавного изменения размеров. Спасибо.

Octane 21.08.2009 15:55

Скорее всего ошибка в том, как вы используете эти функции.

glutton 21.08.2009 16:06

Вот такой код стоит в начале страницы:
<div id=image_container class=invisible onClick="SetInvisible()"></div>

А вот так вызывается функция:
<img src="img.gif" onClick="showLargePicture('img.gif',300,300);">

Вот таблица стилей:
.invisible {display:none} 
.big_image {
	position:fixed;
	z-index:3;
	display:block;
	width:auto;
	height:auto;
}

glutton 21.08.2009 22:33

Удалить тему не удастся, поэтому лучше объяснюсь - нашёл строку с ошибкой с помощью IE8: оказалось в идентичном коде для плавного закрытия окошка вместо "минуса" затесалось "тире"...
obj.style.height = (obj.offsetHeight -- 10) + "px";

Код, стало быть, рабочий, только технически некорректный - высота увеличивается, а ширина - нет... :haha:


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