| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > show/hide дивов |
| Автор: Joes 7.1.2006, 22:06 |
| задача стоит такая: есть блоки с текстом. блоки имеют айди, начинающиеся с a, т.е. a130, a20, a300. нужно, чтобы по нажатию на какой-либо из пп. меню открывался оный, а все остальные закрывались, т.е. style.display = 'none'; вот я и не знаю как сделать, чтобы по нажатию, например, на второй пункт меню, открытый прежде первый - закрывался. |
| Автор: ezhikov 7.1.2006, 22:58 | ||
Попробуйте разобрать этот код
|
| Автор: ezhikov 8.1.2006, 01:02 |
| Я не спец в скриптах. Данный вариант использовал на сайте. Что, где и как уже не помню - главное работало сам набор скриптов http://vibm.narod.ru/jscript.js на академичность не претендую |
| Автор: Joes 8.1.2006, 11:30 |
| ezhikov +1 спасибо, что-то я до eval'a вчера не додумался... |
| Автор: Sardar 9.1.2006, 15:50 |
| ezhikov это самое глючное решение что я когда либо видел, мало того ещё и не по стандартам W3C, мозилла(и все продвинутые браузеры) будет материться Пример от Illuminaty самый правильный. |
| Автор: ezhikov 9.1.2006, 20:41 | ||
А в чем собсно глючность данного решения. В 99% времени я работаю в FireFox и проблем не наблюдаю. Что здесь не работает или не должно работать? Правда я еще добавил в конец
где "about" - у меня был начальный открытый id p.s. Что-то профиль данного форума у меня постоянно слетает. Может что настроить где надо? |
| Автор: Sardar 9.1.2006, 21:52 | ||||
В том что document.all поддерживался изначально IE и Оперой, затем мозилла таки сломилась и с версий 1.0.7 тоже стала поддерживать document.all (хотя и выдаёт предупреждения в консоль). По моему другие браузеры, Safari например document.all не поддерживает. Отсюда понимаем что не нужно юзать сию не стандартную фичу, document.getElementById делает то же самое (ну почти, элементы ищуться только по ID). Второе замечание по самому eval, эта штука делает код не опрятным, мало эффективным с труднонаходимыми ошибками. Не знаю таких случаев что бы eval понадобился... В итоге с твой код не эффективный и не везде будет работать.
Сам подумай, зачем там использовать eval, если ничего в коде ты не меняешь. Убери eval, строку что передавал поставь как код, понаблюдай за тем что функционально ничего не изменилось |
| Автор: ezhikov 10.1.2006, 00:01 |
| ясно, спасибо.. будем листать справочники, чтож такое eval и getElementById |