как узнать что курсор наведен на элемент
как узнать что курсор после setTimeout() наведен на объект
Задача такая: навели курсор на объект #nav, заработал setTimeout(), прошла 1 секунда, И если курсор до сих пор наведен на этот же объект то зарабатывает alert(). $('#nav').hover(function(){ setTimeout(function(){ alert("нецен "); }, 1000); },function(){ alert('отвел'); }); используется jquery |
<p>Наведите и подождите</p> <script> var globalId, p = document.querySelector("p"); function makeAlert() { alert("Вы терпеливы!") } p.onmouseover = function() { globalId = setTimeout(makeAlert, 1000); } p.onmouseout = function() { clearTimeout(globalId); } </script> P.S. JQuery не знаю, прошу прощения. Возможно сможете сделать по аналогии. |
clearTimeout() конечно же!
как я не догодался. Спасибо, GuardCat. |
GuardCat не могу навешать через addEventListener.Помоги пожалуйста.
<style type="text/css"> div{width:100px;height:100px; border:1px solid red;} </style> </head> <body> <div id="block"></div> <script> block=document.getElementById('block') handler=function(){ setTimeout(function(){ block.style.backgroundColor='red' },2000) } handler2=function(){clearTimeout(handler)} block.addEventListener('mouseover',handler,false) block.addEventListener('mouseout',handler2,false) </script> |
bot87,
1. Скажите, вы так отступы сами ставите или поломалось при копировании? Все глаза сломал, блин. 2. Дело не в addEventListener. Дело в том, что clearTimeout в качестве параметра принимает не handler, а номер, который возвращается функцией setTimeout при установке таймера. Надо как-то так: <head> <style type="text/css"> div { width: 100px; height: 100px; border: 1px solid red; } </style> </head> <body> <div id="block"></div> <script> var id; // Завели глобальную переменную block = document.getElementById('block') handler = function(){ id = setTimeout( /*получили номерок*/ function(){ block.style.backgroundColor='red' }, 2000 ) } handler2 = function(){clearTimeout(id)} //использовали номерок block.addEventListener('mouseover', handler, false) block.addEventListener('mouseout', handler2, false) </script> </body> |
спасибо за отличную помощь.:)
|
Часовой пояс GMT +3, время: 16:36. |