Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: перестали работать таймауты...
 
 автор: elenaki   (11.04.2008 в 12:30)   письмо автору
 
 

есть слой с меню и слой с подменю, который делается видимым по наведению мыша.
по уходу мыша с меню или подменю, надо подменю сделать снова невидимым. скрипт
работал. но после небольшого изменения дизайна - перестал.

не пойму, то ли таймауты пересекаются, то ли еще что, но слой не скрывается по уходу...


<script>
function cancelCloseMenu(){
    if(self.tm) clearTimeout(tm) // cancel delayed closing
}
function hideMenu(){
    submenu.hide() /// здесь метод из библиотеки, делает слой невидимым
}
function initiateHideMenu(){
    tm=setTimeout("hideMenu()",500) // 0.5 second delay to close a submenu
}
</script>



в слое пишу onMouseOver="cancelCloseMenu();" onMouseOut="initiateHideMenu();" , чтобы подменю закрывалось не сразу, а с задержкой. оно вообще не закрывается. :( других таймаутов в коде нет, т.е. есть, но они не привязаны к переменным.

если дописать в функцию initiateHideMenu() команду закрытия submenu.hide(), подменю закрывается сразу, а надо по таймауту.

   
 
 автор: RMW   (11.04.2008 в 21:22)   письмо автору
 
   для: elenaki   (11.04.2008 в 12:30)
 

Что будет если сделать так:
<script> 
function cancelCloseMenu(){ 
    if(self.tm) clearTimeout(tm) // cancel delayed closing 

function hideMenu(){ 
    alert(submenu.hide)/// здесь метод из библиотеки, делает слой невидимым 

function initiateHideMenu(){ 
    tm=setTimeout("hideMenu()",500) // 0.5 second delay to close a submenu 

</script>

Будет ли алерт? И если да то, что он выведет?

   
 
 автор: elenaki   (14.04.2008 в 13:37)   письмо автору
 
   для: RMW   (11.04.2008 в 21:22)
 

ничего не выводит. такое впечатление, что функция initiateHideMenu() вообще не вызывается.

   
 
 автор: sim5   (14.04.2008 в 14:17)   письмо автору
 
   для: elenaki   (14.04.2008 в 13:37)
 

Не знаю elenaki, что у вас случилось, но у меня ваш код работает.

   
 
 автор: elenaki   (14.04.2008 в 14:38)   письмо автору
 
   для: sim5   (14.04.2008 в 14:17)
 

и у меня работает... в старой редакции. а в новой не желает. хотя изменения коснулись
только дизайна, положения слоев и добавления одной новой библиотеки, которая к слою
с меню отношения не имеет.

   
 
 автор: sim5   (14.04.2008 в 14:41)   письмо автору
 
   для: elenaki   (14.04.2008 в 14:38)
 

Ну значит проблема не в скриптах.

   
 
 автор: elenaki   (14.04.2008 в 14:56)   письмо автору
 
   для: sim5   (14.04.2008 в 14:41)
 

да. похоже, дело в той библиотеке. потому что сейчас заметила, что на одной странице,
где я ее не подключаю, слои ведут себя как надо. появляются и исчезают... никаких ошибок
JS не выдается. скрипт из библиотеки работает, таймаутов в нем нет, переменных с таким
же именем, что и мой таймауат, нет.

PS переставила скрипт, управляющий видимостью слоев поближе к самому меню - вроде,
работает (на локалке). сейчас на сервер кину... чудеса да и только!

PPS ура! заработало! а еще говорят - от перестановки мест слагаемых...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования