한 번에 여러 애니메이션을 실행하고 모든 기능이 완료되면 함수를 호출하려고한다고 가정 해 보겠습니다.jQuery, 여러 애니메이션 후에 한 번만 콜백 호출
애니메이션이 하나뿐이므로 쉽습니다. 거기에 콜백이 있습니다. 예 :
$(".myclass").fadeOut(slow,mycallback);
내 선택기에서 여러 항목을 찾으면 각 항목에 대해 콜백이 호출됩니다.
해결 방법이 너무 어렵지 않습니다. 예 :
<!DOCTYPE html>
<html>
<head>
<title>Example</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var $mc=$(".myclass"),l=$mc.length;
$mc.fadeOut("slow",function(){
if (! --l) $("#target").append("<p>All done.</p>");
});
});
</script>
<style type="text/css">
</style>
</head>
<body>
<p class="myclass">Paragraph</p>
<p class="myclass">Paragraph</p>
<p class="myclass">Paragraph</p>
<p class="myclass">Paragraph</p>
<p class="myclass">Paragraph</p>
<p class="myclass">Paragraph</p>
<div id="target"></div>
</body>
</html>
내 질문이 있습니다. 더 좋은 방법이 있습니까?
대부분의 경우 카운터 대신 부울을 사용하므로 (첫 번째 애니메이션의 끝에서 작업이 수행됩니다), 그렇지 않으면 동일한 방법입니다. 좋은 질문입니다. 저는 다른 방법으로 궁금합니다. –
사실. 예를 들어 모든 애니메이션의 길이가 같지 않으면 (단순한 예와 같지 않음) 모든 것이 끝나기를 기다리고 싶을뿐입니다. 움직이는 것을 멈추거나 브라우저가 사라지면 무언가를하고 싶을 것입니다. –