Я создаю собственное слайд-шоу для проекта, написанного с помощью jQuery.С каждым слайд-шоу связаны 4 события (play, stop, next, prev).Элементы управления появляются при наведении и наведении мыши.При наведении мыши я хочу задержку исчезновения элементов управления.Чтобы добиться этого, я использовал setTimeout.
$(this).attr('timeout', setTimeout((function(obj){obj.fadeOut(250);})($(this)), 1000));
Это, однако, вызывает ошибку 'бесполезный вызов setTimeout (пропущены кавычки вокруг аргумента?)'
Я удалил ($(this))
, чтобы проверить,Я мог бы упростить вещи.
$(this).attr('timeout', setTimeout((function(foo){alert(foo);})('bar'), 1000));
Это привело к тому, что «бар» отображался в окне предупреждающего сообщения при наведении мыши без задержки, или о любых ошибках, сообщенных в firebug.По этой логике я могу только предположить, что анонимная функция запускается сразу, что не оставляет ничего для вызова setTimeout для последующего вызова.
Если я проигнорирую необходимость передать $ (this) в анонимную функцию и попробовать
$(this).attr('timeout', setTimeout(function(){alert('foo');}, 1000));
все работает как положено, я, должно быть, что-то не так делаю с синтаксисом анонимной функции, но у меня нет идей относительно того, что это может быть.
Спасибо