Вот так, сообщение не появится если вы уберёте мышь из области.
При наведении запускается таймер, а если мышь убрать он сбрасывается.
setTimeout - для вашего случая идеальный вариант, просто использовать его надо в паре с
clearTimeout.
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
#box {
width: 100px;
height: 100px;
background-color: orange;
}
</style>
<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js' type='text/javascript'></script>
</head>
<body>
<div id="box"> Наведите на меня, и подождите 5 секунд. </div>
<script type="text/javascript">
var tout;
$(document).ready(function(){
// обработка при наведении
// $('#box').mouseenter(function(){ //mouseenter тоже работает
$('#box').mouseover(function(){
//создаём таймер который ждёт 5 секунд и запускает ваш метод
tout=setTimeout(function(){
// здесь расположена вся ваша логика
// которая запускается в случае если пользователь держит указатель 5 секунд.
alert("Вы продержали 5 секунд");
},5000);
})
// обработка в случае если мышь выводится из области
.mouseout(function(e){
//унечтожаем таймер, дабы он не выполнил действие по истечению 5 секунд
clearTimeout(tout)
})
});
</script>
</body>
</html>