我想在運行更多代碼之前在.hover()回調函數中添加一個小延遲。我還需要停止計時器,如果它存在,當您懸停另一個觸發相同的.hover()函數的元素。 我目前有它的工作,但它不漂亮,我分配一個計時器到全球,並確保有一個更好的方式來做到這一點。在調用函數之前在.hover()回調函數中添加一個延遲
以下是我有:
PACKAGES.activity_icons.hover(function() {
// If a timer exists kill it here becuase we don't want the
// functions in the timer called if we are hovering on another icon
if(typeof image_restore_timer != 'undefined')
{
clearTimeout(image_restore_timer);
}
// Only swap image if icon has a class
if($(this).attr('class') !== '')
{
$(this).closest('.package').find('.left_wrap > img').hide();
// Show the image with the same class as the icon we hovered
$(this).closest('.package').find('.left_wrap img.'+$(this).attr('class')).show();
}
}, function() {
var this_ref = $(this);
// Store timer in a global and restore images after a pause
image_restore_timer = setTimeout(function() {
(function(el) {
el.closest('.package').find('.left_wrap img.'+this_ref.attr('class')).hide();
el.closest('.package').find('.left_wrap > img:eq(0)').fadeIn('slow');
})(this_ref)
}, 1000);
});
太棒了!謝謝 – davewilly 2010-11-14 00:12:07
@davewilly - 歡迎! – 2010-11-14 00:14:52