Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   История событий... Как отменить? (https://javascript.ru/forum/jquery/17398-istoriya-sobytijj-kak-otmenit.html)

Krugly 17.05.2011 23:25

История событий... Как отменить?
 
Всем доброго времени суток!
Есть такая проблема:
На странице есть 5 div-ов. На каждом висит событие mouseover, которое вызывает функцию, которая в свою очередь выполняет определённую анимацию в течении 1 секунды. Если я быстро повожу мышкой несколько раз по этим дивам (при этом выполняется анимация), а потом уберу её, анимация продолжает выполняться (как бы поставила в очередь всю последовательность событий и продолжает выполнять функцию анимации) ещё довольно долго... Как мне сделать так, чтобы вся эта история событий не запоминалась и выполнялось только то событие, которое произошло последним последним?
Заранее всем большое спасибо!

walik 17.05.2011 23:36

Проверять, что если к примеру сейчас у этого элемента происходит анимация, то не запускать функцию

Krugly 17.05.2011 23:41

Извиняюсь, а как это проверить?

walik 18.05.2011 09:40

Используй фильтр :animated
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
	$('#bla').mouseover(function() {
		$('.first').not(':animated').animate({marginLeft: '100px'}, 500, function() {
			$('.first').animate({marginLeft: '0px'}, 500);
		});
	});
});
</script>
<style>
.first {
	height:100px; width:100px; border: 1px solid  black;
}

</style>
<a id="bla" href="#">Наводи на меня много раз</a><br /><br /><Br />
<div class="first">
	
</div>

Krugly 18.05.2011 13:34

Большое спасибо!!!
Буду пробовать!


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