История событий... Как отменить?
Всем доброго времени суток!
Есть такая проблема: На странице есть 5 div-ов. На каждом висит событие mouseover, которое вызывает функцию, которая в свою очередь выполняет определённую анимацию в течении 1 секунды. Если я быстро повожу мышкой несколько раз по этим дивам (при этом выполняется анимация), а потом уберу её, анимация продолжает выполняться (как бы поставила в очередь всю последовательность событий и продолжает выполнять функцию анимации) ещё довольно долго... Как мне сделать так, чтобы вся эта история событий не запоминалась и выполнялось только то событие, которое произошло последним последним? Заранее всем большое спасибо! |
Проверять, что если к примеру сейчас у этого элемента происходит анимация, то не запускать функцию
|
Извиняюсь, а как это проверить?
|
Используй фильтр :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>
|
Большое спасибо!!!
Буду пробовать! |
| Часовой пояс GMT +3, время: 10:54. |