У меня по непонятной причине setTimeout вообще никаких движений не производит, пробовал уже просто в функцию его вставить, ноль реакции
lis[i].onmouseout=function() { setTimeout("alert('gbhh')",3000); this.className=this.className.replace(new RegExp(" iehover\\b"), ""); |
Levin,
У вас ошибка где-то в другом месте, потому что вызов: setTimeout("alert('gbhh')",3000); Работает. |
Упс, извеняюсь, он в Firefox не работает почему то, в IE работает. Но от этого не легче. Мне надо вставить, насколько я понимаю, setTimeout в строку
this.className=this.className.replace(new RegExp(" iehover\\b"), ""); я прав? |
Цитата:
lis[i].onmouseout=function() { setTimeout("alert('gbhh')",3000); this.className=this.className.replace(/ iehover\b/, ""); } Должно работать! |
To ZoNT: поздравляю с новой ученой степенью :-)
setTimeout работает (правда в Firefox не хочет, но это не важно пока). Цитата:
this.className=this.className.replace(new RegExp(" iehover\\b"), ""); , и setTimeout неодходимо внедрить сюда. Верно? |
Levin,
Вам тут нужно будет применить хитрость, для передачи элемента в нужную область видимости: lis[i].onmouseout = function() { setTimeout(function(element) { return function() { element.className=element.className.replace(/ iehover\b/, ""); } }(this),3000); } |
Ух, работает!!!
Спасибо большое, при 0,15 сек. вариант очень даже приемлемый!!! Хитро, можно коментарии оставить, а то я немного запутался. Понять все таки хочется. |
Levin,
// Обворачиваем функцию в локальное замыкание: function(element) { // Возвращаем функцию, которая использует element // доступный в локальной области видимости: return function() { element.className=element.className.replace(/ iehover\b/, ""); } // Запускаем эту функцию с параметром this - текущий элемент // теперь в setTimeout передана функция, которая вернулась // по return }(this); |
Андрей Параничев, перемудрили что-то
lis[i].onmouseout = function() { var self = this; setTimeout(function() { self.className = self.className.replace(/ iehover\b/, ""); }, 3000); } |
Kolyaj,
Не подумал, виноват :) |
Часовой пояс GMT +3, время: 22:06. |