mouseenter: function() {
(function (self) {
var optionsTimeout = setTimeout(function() {
$('.optionbox', self).fadeIn(200);
}, 1000);
self.data('showTimeout', optionsTimeout);
})($(this));
},
mouseleave: function () {
var self = $(this),
optionsTimeout = self.data('showTimeout');
clearTimeout(optionsTimeout);
$('.optionbox', this).fadeOut(200);
}
Вы должны указать jQuery использовать элементы внутри контекстного .box
, поэтому используйте $(selector, context)
.
Включающая в себя функция self предназначена для сохранения ссылки на контекст внутри выполнения тайм-аута, поэтому вы передаете ее в качестве параметра самовыполняемой функции, и по истечении времени ожидания у нее будет ссылка на исполняемый файл. .box
Вы также можете столкнуться с проблемами, используя одну глобальную переменную для всех тайм-аутов, поэтому вы должны сохранить контекстный код тайм-аута для каждого из них, в моем примере я использую $.data
, чтобы сохранить код и восстановить его.