Ребята очень нужна помощь.
Сразу оговорюсь! Я новичок.
Есть такой простенький сценарий на javascript:
var step = 10;
function changePanel ()
{
var panel = document.getElementById("myDiv");
if (panel.style.display == "none")
{
panel.style.display = "";
expandPanel();
}
else
{
panel.originalHeight = panel.clientHeight;
collapsePanel();
}
}
function collapsePanel ()
{
var panel = document.getElementById("myDiv");
var a = document.getElementById("collapse");
if (panel.clientHeight >= step)
{
var panelHeight = panel.clientHeight - step;
panel.style.height = panelHeight;
setTimeout("collapsePanel()", 2);
}
else
{
a.firstChild.nodeValue = "Развернуть";
panel.style.display = "none";
}
}
function expandPanel ()
{
var panel = document.getElementById("myDiv");
var a = document.getElementById("collapse");
if (panel.clientHeight < (panel.originalHeight - step))
{
var panelHeight = panel.clientHeight + step;
panel.style.height = panelHeight + "px";
setTimeout("expandPanel()", 2);
}
else
{
panel.style.height = "auto";
a.firstChild.nodeValue = "Свернуть";
}
}
Это простенькая выезжающая и заежжающая пенэлька.
Так вот у меня вопрос:
Если я в параметрах функции getElementById ставлю не конкретный id DOM элемента HTML а пытаюсь передать параметром через функцию то весь сценарий ведёт себя совершенно по другому. А именно: панель сама не прячется а уменьшается по чуть чуть по клику по кнопочке или ссылке в которой была вызвана общая функция запуска сценария. может кто то что то знает почему всё так?
То есть пытаюсь я сделать вот такой сценарий:
var step = 10;
function changePanel (n)
{
var panel = document.getElementById(n);
if (panel.style.display == "none")
{
panel.style.display = "";
expandPanel(n);
}
else
{
panel.originalHeight = panel.clientHeight;
collapsePanel(n);
}
}
function collapsePanel (n)
{
var panel = document.getElementById(n);
var a = document.getElementById("collapse");
if (panel.clientHeight >= step)
{
var panelHeight = panel.clientHeight - step;
panel.style.height = panelHeight;
setTimeout("collapsePanel()", 2);
}
else
{
a.firstChild.nodeValue = "Развернуть";
panel.style.display = "none";
}
}
function expandPanel (n)
{
var panel = document.getElementById(n);
var a = document.getElementById("collapse");
if (panel.clientHeight < (panel.originalHeight - step))
{
var panelHeight = panel.clientHeight + step;
panel.style.height = panelHeight + "px";
setTimeout("expandPanel()", 2);
}
else
{
panel.style.height = "auto";
a.firstChild.nodeValue = "Свернуть";
}
}
<a href="javascript:changePanel('myDiv')"></a> вот так я передаю id в функцию параметром.
Последний раз редактировалось Denstell, 30.09.2010 в 03:38.
|