|
|
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
Ваяю тут, понимаете, менюшку... И вот незадача: есть две функции (одна по засвечиванию, другая - по тушению менюшного блока), код практически идентичен: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. Естественно, нужно сделать так, чтобы блоки засвечивались и тушились с небольшой задержкой, а не моментально. А получается, что засвечиваются они с задержкой (нормально, как и требуется, первый таймаут работает), но не тушатся совсем! Т.е. таймаут из функции unhlight_sub не работает. Если ставлю вызов unhlight_div без таймаута, напрямую, то тогда тушение работает, но, конечно же, моментально, а не с задержкой, как нужно. Кто что может присоветовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2009, 20:48 |
|
||
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
Вы неверно передаете параметр в функцию hlight_div и unhlight_div. Вызовы а-ля window.setTimeout("unhlight_div(id)",500); работают лишь за счет того, что id - глобальный параметр. Но если в этот самый период 500 мс будет вызвана ф-ция hlight_sub, то и id изменится, а вместе с ним и глобальные параметры hide и show. id должен быть локальным (var id), формировать вызов тогда так: "unhlight_div("+id+")". От глобальных hide и show нужно избавиться, сделав их свойствами объекта obj (obj.hide и obj.show) (если они вообще нужны здесь). Также желательно избавиться от двух пар практически одинаковых функций hlight_sub-unhlight_sub и hlight_div-unhlight_div, заменив каждую пару на одну функцию, в которую будет передаваться дополнительный параметр скрыть/показать, определяющий, чему будет равно className и visibility. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 01:44 |
|
||
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
illion, Спасибо, я попробую переделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 08:12 |
|
||
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
illionid должен быть локальным (var id), формировать вызов тогда так: "unhlight_div("+id+")". Сразу облом: с локальным id и с вызовом в такой конструкции даже работавший ранее hlight_div перестал работать :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 08:17 |
|
||
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
ага, еще кавычки нужны, чтоб строку обозначить Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 08:53 |
|
||
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
Сделал вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Не работает :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 10:15 |
|
||
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
Ага, setTimeout неправильно написал (с большой буквой "O"). Заработал задержанный показ сабменюшки, а изчезновение так и не работает - блин, это какое-то проклятье! :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 10:51 |
|
||
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
Выяснилось, что не срабатывает функция switch_div при flag==0. Исходник: Код: plaintext 1. 2. 3. 4. При flag==1 почему-то все срабатывает нормально, а вот при нуле даже напрямую (без таймаута) не хочет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 11:15 |
|
||
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
obj_sub.style.visibility == flag ? 'visible' : 'hidden'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 11:33 |
|
||
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
IDVsbruckobj_sub.style.visibility == flag ? 'visible' : 'hidden'; Так вообще ничего не работает. А почему "==", если нам нужно присваивание , а не сравнение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 11:44 |
|
||
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
А вы таки уверены, что вам надо это писать в голом жабоскрипте? Потому как в любом нормальном фреймворке это будет пара строк куда более читаемого кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 15:46 |
|
||
|
Два симметричных setTimeOut
|
|||
|---|---|---|---|
|
#18+
DocAl, Как новичок в веб-программировании, я, конечно же, не уверен. Дело в том, что это пишется для динамической менюшки форума, где пунктами меню будут подфорумы. В движок будет встроен модуль на php, который будет читать базу и выдавать на-гора несколько жабаскриптовых строк вида Код: plaintext 1. 2. после чего браузер пользователя подхватит это дело и отобразит. Применим ли здесь фреймворк? Не уверен... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 15:59 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=35845299&tid=1455133]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 386ms |

| 0 / 0 |
