Показать сообщение отдельно
  #6 (permalink)  
Старый 14.11.2011, 23:28
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Вот так, сообщение не появится если вы уберёте мышь из области.
При наведении запускается таймер, а если мышь убрать он сбрасывается.
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>
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 14.11.2011 в 23:46.
Ответить с цитированием