В событии jquery hover я использую следующий код для выпадающего меню:
clearTimeout(hTimeout);
$('#lowermenu').queue('fx', []);
$('#menucenter .current').removeClass('current');
$(this).children('a').addClass('current');
dTimeout = setTimeout(function($item){slidelower($item)}, 200, $(this)); // This is the bad line
function slidelower($li)
{
$li.addClass('dropping');
$lowermenu = $li.children('ul').clone();
$('#lowermenu:not(:animated)').empty().append($lowermenu).slideDown();
$('#lowermenu > ul > li:not(:animated)').hover(function()
{
$(this).children('ul:hidden').css('top', 'auto').slideDown();
}, function()
{
$(this).children('ul:visible').slideUp();
});
}
Я получаю следующую ошибку:
Сведения об ошибке веб-страницы
Пользовательский агент: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 5.1; Trident / 4.0; GTB6.3; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0)
Метка времени: суббота, 14 ноября 2009 г. 11:12:46 UTC
Сообщение: «undefined» является нулем или не является объектом
Линия: 81
Char: 25
Код: 0
URI: [адрес был здесь]
Я подозреваю, что это вызвано setTimeout - я передаю третий параметр в качестве аргумента для анонимной функции. Эта анонимная функция вызывает функцию с замыканием.
Может кто-нибудь помочь?