Вход

Просмотр полной версии : История событий... Как отменить?


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
Большое спасибо!!!
Буду пробовать!