| 
	| 
	
	| 
		
	| 
			
			 
			
				18.08.2008, 17:35
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 06.08.2008 
						Сообщений: 20
					 
		
 |  |  
	| У меня по непонятной причине setTimeout вообще никаких движений не производит, пробовал уже просто в функцию его вставить, ноль реакции 
lis[i].onmouseout=function() {
			setTimeout("alert('gbhh')",3000);
			this.className=this.className.replace(new RegExp(" iehover\\b"), "");
 |  |  
	| 
		
	| 
			
			 
			
				18.08.2008, 17:48
			
			
			
		 |  
	| 
		
			
			|        |  | 
					Регистрация: 21.02.2008 
						Сообщений: 1,250
					 
		
 |  |  
	| Levin, 
У вас ошибка где-то в другом месте, потому что вызов:
 
setTimeout("alert('gbhh')",3000);
Работает. |  |  
	| 
		
	| 
			
			 
			
				18.08.2008, 17:52
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 06.08.2008 
						Сообщений: 20
					 
		
 |  |  
	| Упс, извеняюсь, он в Firefox не работает почему то, в IE работает. Но от этого не легче. Мне надо вставить, насколько я понимаю, setTimeout в строку  
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
я прав? |  |  
	| 
		
	| 
			
			 
			
				18.08.2008, 18:33
			
			
			
		 |  
	| 
		
			
			| Флудер       |  | 
					Регистрация: 25.07.2008 
						Сообщений: 1,271
					 
		
 |  |  
	| 
	
 
	| Сообщение от Levin   |  
	| У меня по непонятной причине setTimeout вообще никаких движений не производит, пробовал уже просто в функцию его вставить, ноль реакции 
 
lis[i].onmouseout=function() {
			setTimeout("alert('gbhh')",3000);
			this.className=this.className.replace(new RegExp(" iehover\\b"), "");
 |  
	
 
lis[i].onmouseout=function() {
		setTimeout("alert('gbhh')",3000);
		this.className=this.className.replace(/ iehover\b/, "");
}
Должно работать! |  |  
	| 
		
	| 
			
			 
			
				18.08.2008, 19:08
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 06.08.2008 
						Сообщений: 20
					 
		
 |  |  
	| To ZoNT: поздравляю с новой ученой степенью :-) 
setTimeout работает (правда в Firefox не хочет, но это не важно пока).
 
	
 
	| Сообщение от ZoNT   |  
	| вешаешь закрытие (смену класса) на таймаут и всё (смотри setTimeout) |  
	
 Смена класса производится в строке 
 
this.className=this.className.replace(new RegExp(" iehover\\b"), "");
, и setTimeout неодходимо внедрить сюда. Верно? |  |  
	| 
		
	| 
			
			 
			
				18.08.2008, 19:19
			
			
			
		 |  
	| 
		
			
			|        |  | 
					Регистрация: 21.02.2008 
						Сообщений: 1,250
					 
		
 |  |  
	| Levin, 
Вам тут нужно будет применить хитрость, для передачи элемента в нужную область видимости:
 
lis[i].onmouseout = function() {
        setTimeout(function(element) {
            return function() {
                element.className=element.className.replace(/ iehover\b/, "");
            }
        }(this),3000);
}
 |  |  
	| 
		
	| 
			
			 
			
				18.08.2008, 20:33
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 06.08.2008 
						Сообщений: 20
					 
		
 |  |  
	| Ух, работает!!!Спасибо большое, при 0,15 сек. вариант очень даже приемлемый!!!
 Хитро, можно коментарии оставить, а то я немного запутался. Понять все таки хочется.
 |  |  
	| 
		
	| 
			
			 
			
				18.08.2008, 23:12
			
			
			
		 |  
	| 
		
			
			|        |  | 
					Регистрация: 21.02.2008 
						Сообщений: 1,250
					 
		
 |  |  
	| Levin,
 
// Обворачиваем функцию в локальное замыкание:
function(element) {
    // Возвращаем функцию, которая использует element
    // доступный в локальной области видимости:
    return function() {
        element.className=element.className.replace(/ iehover\b/, "");
    }
// Запускаем эту функцию с параметром this - текущий элемент
// теперь в setTimeout передана функция, которая вернулась
// по return
}(this);
 |  |  
	| 
		
	| 
			
			 
			
				18.08.2008, 23:16
			
			
			
		 |  
	| 
		
			
			| Новичок на форуме       |  | 
					Регистрация: 19.02.2008 
						Сообщений: 9,177
					 
		
 |  |  
	| Андрей Параничев, перемудрили что-то
 
lis[i].onmouseout = function() {
  var self = this;
  setTimeout(function() {
    self.className = self.className.replace(/ iehover\b/, "");
  }, 3000);
}
 |  |  
	| 
		
	| 
			
			 
			
				19.08.2008, 00:14
			
			
			
		 |  
	| 
		
			
			|        |  | 
					Регистрация: 21.02.2008 
						Сообщений: 1,250
					 
		
 |  |  
	| Kolyaj, 
Не подумал, виноват   |  |  |  |