Показать сообщение отдельно
  #1 (permalink)  
Старый 07.12.2011, 07:52
Интересующийся
Отправить личное сообщение для prolapse Посмотреть профиль Найти все сообщения от prolapse
 
Регистрация: 31.05.2011
Сообщений: 21

jQuery и проблема с вызовом
Доброе утро.
Я использую 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>

Последний раз редактировалось prolapse, 07.12.2011 в 13:31. Причина: небыло примера...
Ответить с цитированием