Вот пример jsFiddle , который устанавливает 3-секундную задержку с помощью функции setTimeout .:
JQuery
var cto;
$("#arrow").hover(
function() {
clearTimeout(cto);
$("#inner").stop().animate({
marginRight: "0px",
opacity: "1px",
height: "100px"
}, 500);
}, function() {
cto = setTimeout(function(){$('#arrow').trigger('click')}, 3000);
});
$("#arrow").click(function(e) {
$("#inner").stop().animate({
marginRight: "-100px",
opacity: "1px",
height: "100px"
}, 500);
});
Обратите внимание, что если пользователь уберет свою мышь, а затем вернет ее в div, окно снова останется открытым до тех пор, пока в этот момент не начнется 3-секундный таймер обратного отсчета.