Have a look at this code. It will accomplish delayed animation and also removes repeated animation
var still;
$('#test').hover(function () {
var that = $(this);
if (!still) {
still = true;
window.setTimeout(function () {
if (still) {
that.animate({
'width': 200
}, 100, function () {
still = false;
});
}
}, 100);
}
}, function () {
still = false;
$(this).animate({
'width': 100
}, function () {
});
});
Check here