Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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. Причина: небыло примера...
Ответить с цитированием
  #2 (permalink)  
Старый 07.12.2011, 09:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

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

Сообщение от ksa Посмотреть сообщение
prolapse, тестовый пример где?
Добавил в 1 пост.
Ответить с цитированием
  #4 (permalink)  
Старый 07.12.2011, 13:24
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

Сообщение от prolapse
Я использую jQuery. Ставлю обработчик события hover. Функция при наведении на цель показывает блок fadeIn'ом за 1 секунду. При уведении она скрывает блок.
Не совсем понятно зачем в твоём примере ajax... Да и пример под описание твоей проблемы можно сделать полный и с запуском прямо тут.
Ответить с цитированием
  #5 (permalink)  
Старый 07.12.2011, 13:28
Интересующийся
Отправить личное сообщение для prolapse Посмотреть профиль Найти все сообщения от prolapse
 
Регистрация: 31.05.2011
Сообщений: 21

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

Последний раз редактировалось prolapse, 07.12.2011 в 13:40.
Ответить с цитированием
  #6 (permalink)  
Старый 07.12.2011, 13:42
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

Сообщение от prolapse
Я хочу сделать так, чтобы при наведении, скрипт сперва пускал задержку в 0.8 секунд, затем проверял наведен ли еще курсор на цель, и только потом запускалась функция.
Тут недавно решали такое... Поищи поиском.
Ответить с цитированием
  #7 (permalink)  
Старый 07.12.2011, 13:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,206

Да вот она, темка-то!
задержка на реакцию .mouseenter
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с кодировкой в Jquery snizhok jQuery 3 27.06.2011 20:53
Ошибка в jQuery 1.5.1. Не понимаю в чем проблема? viatcheslav AJAX и COMET 0 16.05.2011 11:38
Проблема с вкладками на jquery tomclancys Общие вопросы Javascript 0 11.03.2010 08:44
Проблема с jQuery. Beck jQuery 2 26.08.2009 19:08
jquery tabs (проблема с отображением) Extern Элементы интерфейса 0 16.03.2009 17:42