Ребята очень нужна помощь.
Сразу оговорюсь! Я новичок.
Есть такой простенький сценарий на 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 в функцию параметром. |
отформатируйте код http://javascript.ru/formatting
|
Проверьте что передаёте в getElementById
|
Часовой пояс GMT +3, время: 17:03. |