[help] таймаут выполнения функции

Статус
В этой теме нельзя размещать новые ответы.

BrainSlug

Постоялец
Регистрация
15 Июн 2008
Сообщения
90
Реакции
12
Простой и короткий вопрос, но к сожалению я не нашел ответа в мануалах.
Имеем:


HTML:
$(document).ready(function(){
    $(".btn").hover(
        function() {
            $("#panel2").fadeIn(300);
        },
        function() {
            $("#panel2").fadeOut(600);       
        }
    );
	
    $("#panel2").hover(
        function() {
            $("#panel2").removeClass("panel").addClass("panelv").stop();
        },
        function() {
            $("#panel2").removeClass("panelv").addClass("panel").fadeOut("slow");
        }
    );
});


Блок который проявляется #panel2 это меню, на которое переводится курсор. Проявляется он за 300 м.сек.

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

Вопрос, как задать таймаут в строке

$("#panel2").removeClass("panel").addClass("panelv").stop();

на выполнение .stop()

Тоесть, чтоб stop сработал через 300м.сек.

Очень надо.:thenks:
 
Чем не угодил стандартный JS - setTimeout?
 
Но это все обрабатывает jQuery я думал у него пишется по другому..

Если не сложно, покажите как применить setTimeout к stop();
в
$("#panel2").removeClass("panel").addClass("panelv ").stop();
 
setTimeout(function(){ $("#panel2").removeClass("panel").addClass("pane lv ").stop(); }, время_в_миллисекундах);
 
Или если уж хочется все по жкеревски, то существует плагин jQuery.timer
в нем делается так. Примеры из самого плага
Код:
@usage
   $.timer(interval, callback);
  
  
   @example
   $.timer(1000, function (timer) {
   	alert("hello");
   	timer.stop();
   });
   @desc Show an alert box after 1 second and stop
  
   @example
   var second = false;
  	$.timer(1000, function (timer) {
  		if (!second) {
  			alert('First time!');
  			second = true;
  			timer.reset(3000);
  		}
  		else {
  			alert('Second time');
  			timer.stop();
  		}
  	});
   @desc Show an alert box after 1 second and show another after 3 seconds
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху