Показать сообщение отдельно
  #1 (permalink)  
Старый 30.09.2010, 03:32
Новичок на форуме
Отправить личное сообщение для Denstell Посмотреть профиль Найти все сообщения от Denstell
 
Регистрация: 30.09.2010
Сообщений: 1

Ребята очень нужна помощь.
Сразу оговорюсь! Я новичок.
Есть такой простенький сценарий на 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.
Ответить с цитированием