История событий... Как отменить?
Всем доброго времени суток!
Есть такая проблема: На странице есть 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, время: 08:11. |