Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   jQuery и проблема с вызовом (https://javascript.ru/forum/events/23804-jquery-i-problema-s-vyzovom.html)

prolapse 07.12.2011 07:52

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>

ksa 07.12.2011 09:37

prolapse, тестовый пример где?

prolapse 07.12.2011 13:22

Цитата:

Сообщение от ksa (Сообщение 141140)
prolapse, тестовый пример где?

Добавил в 1 пост.

ksa 07.12.2011 13:24

Цитата:

Сообщение от prolapse
Я использую jQuery. Ставлю обработчик события hover. Функция при наведении на цель показывает блок fadeIn'ом за 1 секунду. При уведении она скрывает блок.

Не совсем понятно зачем в твоём примере ajax... Да и пример под описание твоей проблемы можно сделать полный и с запуском прямо тут.

prolapse 07.12.2011 13:28

Цитата:

Сообщение от ksa (Сообщение 141165)
Не совсем понятно зачем в твоём примере ajax... Да и пример под описание твоей проблемы можно сделать полный и с запуском прямо тут.

А что тут непонятного, информация загружается в блок вот и все. Я же не просто так на пример ссылку дал. Вы лучше помогли с проблемой. Вот её суть еще раз:
Я хочу сделать так, чтобы при наведении, скрипт сперва пускал задержку в 0.8 секунд, затем проверял наведен ли еще курсор на цель, и только потом запускалась функция.
А у меня сейчас получается. При наведении задержка, а потом функция выполняется несмотря на проверку. В пример я проверку не вставлял.

ksa 07.12.2011 13:42

Цитата:

Сообщение от prolapse
Я хочу сделать так, чтобы при наведении, скрипт сперва пускал задержку в 0.8 секунд, затем проверял наведен ли еще курсор на цель, и только потом запускалась функция.

Тут недавно решали такое... :yes: Поищи поиском.

ksa 07.12.2011 13:43

Да вот она, темка-то! :)
http://javascript.ru/forum/jquery/23...ouseenter.html


Часовой пояс GMT +3, время: 09:00.