![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Micher |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.1.2006 Где: г. Ижевск Репутация: нет Всего: нет |
На картинках стоит onClick, вызывающий функцию, которая слоям меняет свойства display. Почему то срабатывает со 2 раза стабильно. Причём после 2 раза, уже нормально. На простых линках такое ставил - работает нормально - сразу. Может кто сталкивался и подскажет в чём проблема...
|
|||
|
||||
| Rigel |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 24.7.2007 Где: Москва Репутация: нет Всего: нет |
Догадываюсь, что забыты какие-то умолчания, которые ставит функция при первом вызове - но, скажите пожалуйста, как можно ответить на этот вопрос конкретно, не имея перед собой текста программы? --------------------
С уважением. Rigel. http://www.smoliy.ru |
|||
|
||||
| Micher |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.1.2006 Где: г. Ижевск Репутация: нет Всего: нет |
Сейчас исправлюсь.
Вызов идёт так:
Теперь ява-скрипт:
hideAll() - ставит всем слоям, кроме указанного, display: none; а указанному соотвественно display: block; Добавлено через 9 минут и 10 секунд Сейчас исправлюсь. Вызов идёт так:
Теперь ява-скрипт:
hideAll() - ставит всем слоям, кроме указанного, display: none; а указанному соотвественно display: block; |
||||||||
|
|||||||||
| Rigel |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 24.7.2007 Где: Москва Репутация: нет Всего: нет |
Сегодня нет времени моделировать ситуацию - разве что ты вышлешь полный вариант на ICQ-адрес. Но с ходу могу сказать, что в функции show ничего кроме одной стороки просто ненужно, и if, который берет значение стиля отображения, в особенности. Попробуй
function show(obj) { document.getElementById(obj).style.display = 'block'; } Вторую функцию тоже надо бы разгрузить от избыточности - в этом тоже может быть проблема. Что-то типа: function hideAll(obj) { for (var i = 0; i < divs.length; i++) { document.getElementById(divs[i]).style.display = 'none'; } show(obj); } Это сообщение отредактировал(а) Rigel - 27.8.2007, 16:33 --------------------
С уважением. Rigel. http://www.smoliy.ru |
|||
|
||||
| Micher |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.1.2006 Где: г. Ижевск Репутация: нет Всего: нет |
Дело в том, что если текущий слой открыт и мы кликаем на его открытие, он должен закрыться, поэтому в show() и стоят условия
|
|||
|
||||
| Rigel |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 24.7.2007 Где: Москва Репутация: нет Всего: нет |
В том, что я написал, он и закроется - смотри внимательно. Они ВСЕ закроются. А потом откроется один. --------------------
С уважением. Rigel. http://www.smoliy.ru |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
||||
|
||||
| Micher |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.1.2006 Где: г. Ижевск Репутация: нет Всего: нет |
Всё слои изначально закрыты. Бегу по всем, потому что неизвестно, какой из них открыт в данный момент(и открыт ли вообще) Добавлено через 1 минуту и 47 секунд
Если слой открыт и мы на нём щелкаем, то он должен закрыться. А в вашем коде, сначала все закроются, потом 1 ОБЯЗАТЕЛЬНО откроется. |
||||||
|
|||||||
| Micher |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.1.2006 Где: г. Ижевск Репутация: нет Всего: нет |
Надо попробовать запоминать в переменной текущий открытый слой, чтоб не бегать по всем, может прокатит |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Раз уж точно известно, что все слои изначально закрыты, то можно сделать проще. Можно сохранять каждый раз при открытии слоя ссылку на него в какой-нибудь переменной. Таким образом всегда будет известно, какой слой стал активным (открытым/закрытым) в момент последнего клика. |
|||
|
||||
| Micher |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.1.2006 Где: г. Ижевск Репутация: нет Всего: нет |
Сделал так:
Теперь не бегу циклом по всем. Результат тот же что и раньше :( Добавлено через 2 минуты и 32 секунды Опа, даже больше скажу! Стало хуже работать - теперь всегда со 2 раза :( Думаю, надо как то по другому show() делать. Думаю, в нём косяк |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Micher, я имел ввиду что-нибудь, вроде этого:
Вместо hideAll используйте show... |
|||
|
||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Опа, даже больше скажу! теперь всегда со 2 раза
-------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
А смотрите случайно не в Опере? А то у Оперы свои приколы с невидимыми элементами. Во всяком случае в кэш она невидимые картинки не складывает.
-------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| Micher |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 13.1.2006 Где: г. Ижевск Репутация: нет Всего: нет |
Смотрю и в Опере, и IE и в Firefox, везде работает одинакого |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |