Доброе утро.
Я использую jQuery. Ставлю обработчик события hover. Функция при наведении на цель показывает блок fadeIn'ом за 1 секунду. При уведении она скрывает блок.
Проблема в том, что если быстро водить курсором около краев цели то как бы блок выводится, скрыватся, выводится, скрывается и все это происходит поочереди.
Как убрать это. Я не могу сделать проверку, так как блок с первой функцией(при на ведении) будет выпол няться все ровно... Делал проверки не помогло.
Вот рабочая копия моего сайта где я тестирую скрипт, на этой странице наведите на любую новость в таблице.
http://sha.prolapse.tmweb.ru/rapnews
Я хочу сделать так, чтобы при наведении, скрипт сперва пускал задержку в 0.8 секунд, затем проверял наведен ли еще курсор на цель, и только потом запускалась функция. А у меня сейчас получается. При наведении задержка, а потом функция выполняется несмотря на проверку. В пример я проверку не вставлял.
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js";></script>
<script type="text/javascript">
$(document).ready(function(){
var a = $('td a');
var ha = $('#smartbox div')
ha.fadeOut(0); //убераю блок..
a.hover(
function () {
$.ajax({
type: "POST",
url: "http://sha.prolapse.tmweb.ru/test.php",
data: "id="+parseInt($(this).attr("href").substring(9, 11)) ,
success: function(html){ha.html(html);}
});
a.mousemove(function(e){
e = window.event;
if (e.pageX == null && e.clientX != null ) {
var html = document.documentElement;
var body = document.body;
e.pageX = e.clientX ;
e.pageY = e.clientY ;
}
ha.css( "left",e.pageX);
ha.css( "top",e.pageY)
})
ha.delay(800).fadeIn(1000);
return false;
},
function () {
ha.fadeOut(10);
}
);
})
</script>