Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.09.2009, 12:19
Новичок на форуме
Отправить личное сообщение для cln2008 Посмотреть профиль Найти все сообщения от cln2008
 
Регистрация: 23.09.2009
Сообщений: 6

Как поставить тайм-аут для выполнения скрипта
Добрый день.

Помогите, плз, начинающему. Необходимо сделать так, чтобы обработка события имела небольшую задержку. Вот код

Код:
</P><P>$(document).ready(function(){
 $('.topmenu ul li').hover(
 function() {
 $(this).addClass("active");
 $(this).find('ul').stop(true, true);
 $(this).find('ul').toggle("slide", {direction:"left"}, 2000); 
 },
 function() {
 $(this).removeClass("active");
 $(this).find('ul').toggle("slide", {direction:"left"}, 2000); 
 }
 );

 });
Само меню состоит из <li></li> элементов

Необходимо сделать так, чтобы если мышка находится над пунктом меню более чем 1 сек, то событие обрабатывается.

Подскажите, как такое можно реализовать.
Ответить с цитированием
  #2 (permalink)  
Старый 23.09.2009, 12:21
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

setInterval
Ответить с цитированием
  #3 (permalink)  
Старый 23.09.2009, 12:57
Новичок на форуме
Отправить личное сообщение для cln2008 Посмотреть профиль Найти все сообщения от cln2008
 
Регистрация: 23.09.2009
Сообщений: 6

B~Vladi, а не могли бы Вы пример привести ?
а то что-то не доходит до меня ... куда его вставить
Ответить с цитированием
  #4 (permalink)  
Старый 23.09.2009, 13:02
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от cln2008
а не могли бы Вы пример привести ?
Примеров на этом сайте достаточно! Не ленитесь юзать поиск... В таймерах нет ничего сложного.

ЗЫ: Рано вы за jQuery взялись.
Ответить с цитированием
  #5 (permalink)  
Старый 23.09.2009, 13:05
Новичок на форуме
Отправить личное сообщение для cln2008 Посмотреть профиль Найти все сообщения от cln2008
 
Регистрация: 23.09.2009
Сообщений: 6

Сообщение от B~Vladi Посмотреть сообщение
Примеров на этом сайте достаточно! Не ленитесь юзать поиск... В таймерах нет ничего сложного.

ЗЫ: Рано вы за jQuery взялись.
а почему ?
Ответить с цитированием
  #6 (permalink)  
Старый 23.09.2009, 13:25
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от cln2008
а почему ?
Потому что не знаете основ JavaScript и не представляете себе: "что же там просиходит в нутри этого зверя - jQuery?!". setInterval - это простейший метод window и, к тому же, полностью кроссбраузерен. Так что не вижу никаких проблем в реализации. Если вам нужен алгоритм, по которому вы собираетесь строить логику вашей программы - в этом всегда пожалуйста.
И помните, что jQuery - это не Господь Бог и рано или поздно вам обязательно придёться лезть в спецификацию ECMAScript.
Ответить с цитированием
  #7 (permalink)  
Старый 23.09.2009, 13:43
Новичок на форуме
Отправить личное сообщение для cln2008 Посмотреть профиль Найти все сообщения от cln2008
 
Регистрация: 23.09.2009
Сообщений: 6

B~Vladi, все правильно ... знаний пока мизер, даже меньше ...
но нет времени поступательно изучать, поэтому и приходится "выхватывать кусками" ... с самой менюхой справился, но необходимо реализовать так, чтобы если курсор мыши стоит над пунктом меню более 1 сек, то тогда он (пункт) раскрывется ....
setInterval пробовал различными способами, но ожидаемого эффекта не получил
Вы можете мне помочь ?
Ответить с цитированием
  #8 (permalink)  
Старый 23.09.2009, 14:57
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от cln2008
setInterval пробовал различными способами
А их много чтоли?!
Значит, когда вы устанавливаете обработчик события (надеюсь, этот кусок вы в состоянии найти), вы передаёте функцию, которая открывает ваше подменю. Так вот вместо этой функции вам нужно передать что-то вроде этого:
function(){var timer=setInterval(function(){имяВашейФункции()},1000)}

Но после этого нужно ещё поставить событие onmouseout на пункт меню, чтобы сбросить таймер, если секунда ещё не прошла:
clearInterval(timer);


Вобщем, если уж учиться времени нет - гугл вам в помощь. За годы написано куча скриптов для менюшек на любой вкус - пользуйтесь.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как переместить результат работы скрипта? Vlaimir Events/DOM/Window 2 31.08.2009 13:52
Как запустить скрипт после отработки другого скрипта? roman2 Общие вопросы Javascript 2 10.08.2009 01:23
Как изменить скрипт, что бы им его можно было использовать для нужной страницы Nick50_70 Общие вопросы Javascript 0 28.04.2009 23:30
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
Как найти путь к файлу для модификации? JuliaMilan Firefox/Mozilla 0 31.03.2009 14:06