![]() |
Javascript требуется небольшая коррекция
заранее прошу прощение за портянку кода.
в следующем шаблоне генерится раскрывающееся меню. все пункты меню свернуты, за исключением текущего пункта при попытке свернуть текущий раздел, при первом клике ничего не происходит, сворачивается меню только после второго клика. подскажите, пожалуйста, что нужно дописать, чтобы открытый раздел меню сворачивался при первом клике? Код:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
Было бы проще, если бы можно было видеть этот скрипт в действии, а то такая билеберда у меня не канает..
Потом var aelem[], стоит как видишь запятая вместо семиколона ; Потом советую через eval заносить onclick события, а то с ие такие траблы могут быть. obj.onclick = new Function("slidehidden(this)"); на eval("obj.onclick=function() { slidehidden(this); }"); типа этого в общем.. у меня так по крайней мере везде совместимо. |
|
Даже не вдаваясь особо в подробности, на минус приходится жать дважды, потому что тот уже раскрыт и получает, как и картинки-плюс одну и ту же функцию slideshow(this). В таком случае надо, чтобы была дополнительная проверка, какая картинка актуально загружена и по ней присваивать функции..
добавлено через 20 минут Вот, самое простое решение. Код:
<script type="text/javascript"> |
Viro_man, выручил! мега респект и уважуха! :молись::молись::молись:
спасибо!!! добавил репу. |
Да пожалуйста, только я сейчас подумал, а зачем гонять лишний раз циклы проверки, ведь лучше сделать всё сразу при загрузке страницы, что и сделал и так даже быстрее..
Код:
<script type="text/javascript"> |
второй вариант не работает. картинки пропадают и javascript ошибки выдает.
в первом варианте в случае если категория уже открыта происходит ошибка при ее сворачивании :( Код:
obj.parentNode.parentNode.getElementsByTagName("ul")[0] is undefined |
Это такое дело, где любой подгон необходимо делать по новому именно с той разработкой, которая актуальна. А второй у меня работает отлично на том примере, что был дан и от первого не отличается. Загвоздка скорее всего в вашей новой версии сайта, где пытаетесь меню выстроить не по тому образцу примера. А тут естественно всё по новому делать надо.
PS: самая первая ошибка новичков, полагать, что если те сунут яваскрипт в начало страницы, то яваскрипт будет знать, что ему искать. Так вот qwebec, ваша ошибка в том, что код инициализации должен быть либо в конце страницы, либо в начале ввиде онлоад функции, чего в данном случае нет, так что перведите код вниз страницы и всё должно получиться со вторым вариантом. |
Viro_man, логично. тогда лучше все таки отладить сначала на приведенном примере.
Firefox на второй вариант не ругается, а вот IE ругается при попытке свернуть изначально открытую категорию Error Message: 'parentNode.parentNode.getElementsByTagName(...).0.style' is null or not an object пример, здесь второй вариант javascript кода размещен в самом низу страницы :help: |
Ну блин, всё у меня работает с моим вторым вариантом без ошибок, ошибку сделал ты, не надо дважды онклик событие прописывать, естественно глупый ие это не очень переваривает, вот так работает и без никаких изменений яваскрипта самого...
Код:
<html xmlns="http://www.w3.org/1999/xhtml"> |
| Часовой пояс GMT +4, время: 07:11. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.