![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 6 Всего: 14 |
Всем привет.
Накнулся недавно на код-выпадающее меню, который написал Sardar. Принцип кода понятен, возникли пара вопросов. Что такое obj.tmr? Вроде таймер, но почему ссылаетсс на obj, т.е. на эллемент item first Что такое obj.open? Все, что ниже понятно, перебор всех ээлементов и изменение значения top, вот только function closeMenu(obj) не задействован?
Это сообщение отредактировал(а) GIK - 3.4.2006, 12:26 -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
| dstorm81 |
|
|||
![]() бездельник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1178 Регистрация: 18.1.2006 Где: (16RU) Репутация: 20 Всего: 39 |
ну не используется, может не весь код здесь
напиши ему письмо -------------------- на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#) |
|||
|
||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
||||
|
||||
| GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 6 Всего: 14 |
Не понял. Где можно Ман по теме посмотреть, если конечно кто нибуть не разъяснит.... Что значит поле tmr у эллемента obj, т.е. как я понял конструкция obj.tmr=window.setInterval(function() {moveMenuAnim(obj, false);}, 10); устанавливает прямо в тег элемент tmr которому присваивает таймер??? И если он был установлен этот таймер вырубается, или более того удаляется когда происходит повторный вызов. if(obj.tmr) window.clearInterval(obj.tmr); Это сообщение отредактировал(а) GIK - 4.4.2006, 09:17 -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
| GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 6 Всего: 14 |
И еще что есть obj.open? оно возникает при событии???
-------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
| Ciber SLasH |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
Почти, tmr в данном случае это поле объекта (RTFM по ООП), которое мы создаём. А т.к. в JS поля можно создавать всего лишь присвоив ему значение, то теперь у элемента (объекта) появилось поле со значением, которое вернула функция setInterval().
Угу, если поле существует, то значит мы его уже создали, что означает, что мы уже вызывали setInterval() — следовательно нужно отключить интервал. |
||||
|
|||||
| GIK |
|
|||
![]() Добрый человек ![]() ![]() Профиль Группа: Участник Сообщений: 985 Регистрация: 3.6.2005 Где: я только не небыв ал Репутация: 6 Всего: 14 |
Понял.
Еще вопрос: Отличается ли обычная переменная, которой присвоили некоторое значение, например установили таймер, от так называемого поля которое создается динамически как в данном случае, которому так же присваивается значение? Это сообщение отредактировал(а) GIK - 8.4.2006, 16:45 -------------------- Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!! Программирование - это не деятельнось! Программирование - это состояние души! Бог - самый крутой программист. |
|||
|
||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
||||
|
||||
| Cristall512 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 29.7.2006 Репутация: нет Всего: нет |
Чуваки, эта [censored], по ходу, только в ослике пашет! По крайней мере, в файерфоксе не работает ни фига!
|
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Cristall512, просто GIK не подумал что DOM через чур универсален, он содержит коменты, отступы в вёрстке и прочее, отсюда previousSibling и подобные становяться бесполезны. В ИЕ с трезвой головой подошли к этому делу и нарушили стандарт W3C, из дерева убираються пробелы и коменты до тех пор пока не выставишь валидный <!DOCTYPE.
Выход: заменить все previousSibling/nextSibling на итерации через childNodes, либо поставить на цикл и отфильтровывать не ноды, либо убрать из вёрстки все пробелы для выравнивания - последний вариант самый кривой. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Опять же вспоминая мой недавний случай, у меня стоит доктайп, при чем хштмл и он валиден - но скрипт не работал. Что же тогда значит "валидный"? И еще, на quircksmode есть что-нибудь по этому поводу почитать? |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Угу, именно не работал, потому что ты обращался к нодам в childNodes по индексу, не думая, что от одной ноды до другой может быть ещё несколько нод комментов и строковых с отступами твоей вёрстки. Убрав DOCTYPE у ИЕ он должен выпасть в quirksmode и автоматом отфильтровывать всё лишнее из DOM дерева, оставляя только элементы. Тогда доступ по индексу должен работать, ибо childNodes сокращается в давно сущствующую в ИЕ коллекцию children. Парни из W3C делали DOM так, что бы не потерять и бита информации. Но сам по себе DOM слишком громоздкий и "низкоуровневый", поэтому поверх него для селекций используется XPath (часть DOM3) Валидный DOCTYPE, это тот, который в правильном синтаксисе (как минимум публичный идентификатор нужен), понимается ИЕ и от которого он не выпадает в quirksmode. Таблица. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |