Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как поставить тайм-аут для выполнения скрипта (https://javascript.ru/forum/misc/5175-kak-postavit-tajjm-aut-dlya-vypolneniya-skripta.html)

cln2008 23.09.2009 12:19

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

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

Код:

</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 сек, то событие обрабатывается.

Подскажите, как такое можно реализовать.

B~Vladi 23.09.2009 12:21

setInterval

cln2008 23.09.2009 12:57

B~Vladi, а не могли бы Вы пример привести ?
а то что-то не доходит до меня ... куда его вставить :cray:

B~Vladi 23.09.2009 13:02

Цитата:

Сообщение от cln2008
а не могли бы Вы пример привести ?

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

ЗЫ: Рано вы за jQuery взялись.

cln2008 23.09.2009 13:05

Цитата:

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

ЗЫ: Рано вы за jQuery взялись.

а почему ?

B~Vladi 23.09.2009 13:25

Цитата:

Сообщение от cln2008
а почему ?

Потому что не знаете основ JavaScript и не представляете себе: "что же там просиходит в нутри этого зверя - jQuery?!". setInterval - это простейший метод window и, к тому же, полностью кроссбраузерен. Так что не вижу никаких проблем в реализации. Если вам нужен алгоритм, по которому вы собираетесь строить логику вашей программы - в этом всегда пожалуйста.
И помните, что jQuery - это не Господь Бог и рано или поздно вам обязательно придёться лезть в спецификацию ECMAScript.

cln2008 23.09.2009 13:43

B~Vladi, все правильно ... знаний пока мизер, даже меньше ...
но нет времени поступательно изучать, поэтому и приходится "выхватывать кусками" ... с самой менюхой справился, но необходимо реализовать так, чтобы если курсор мыши стоит над пунктом меню более 1 сек, то тогда он (пункт) раскрывется ....
setInterval пробовал различными способами, но ожидаемого эффекта не получил :(
Вы можете мне помочь ?

B~Vladi 23.09.2009 14:57

Цитата:

Сообщение от cln2008
setInterval пробовал различными способами

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

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


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


Часовой пояс GMT +3, время: 14:19.