Side navigation
#9846 closed bug (worksforme)
Opened July 16, 2011 10:48PM UTC
Closed July 17, 2011 12:24AM UTC
.done() does not fire when animation has complete callback
| Reported by: | KarlG | Owned by: | |
|---|---|---|---|
| Priority: | low | Milestone: | 1.next |
| Component: | deferred | Version: | 1.6.2 |
| Keywords: | Cc: | ||
| Blocked by: | Blocking: |
Description
I'm not completely sure this is a bug, but it does seem to be an unexpected change in behavior from 1.6.1 to 1.6.2. Here is the test case:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="/js/jquery-1.6.2.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var slideUpAndRemove = function() {
$(this).slideUp(function() {
$(this).remove();
});
}
var box = $("#box");
box.animate({
opacity : 0.0
}, {
duration : 2000,
complete : slideUpAndRemove
});
$.when(box).done(function() {
alert('done!');
});
});
</script>
</head>
<body>
<div id="box" style="color:white;background-color:green;position:absolute;height:200px;width:200px">This is a test box</div>
<div>Below the animated box</div>
</body>
</html>
In 1.6.1, the 'done!' alert box consistently appears. It does not in 1.6.2.
I have tested in FF 5 and Chrome 14 (Ubuntu 10.04).
Attachments (0)
Change History (4)
Changed July 16, 2011 10:52PM UTC by comment:1
Changed July 16, 2011 11:31PM UTC by comment:2
The issue seems to be related to the fact that the elements are getting removed in the complete callback. This version accomplishes the same thing and works in 1.6.2:
So, like I said, I'm not sure if this counts as a bug but it is a change in behavior. I can live with the second alternative just fine.
Changed July 16, 2011 11:34PM UTC by comment:3
Sorry, I seem to have faddled that last fiddle. Here's the alternative I meant to post:
Changed July 17, 2011 12:24AM UTC by comment:4
| component: | unfiled → deferred |
|---|---|
| priority: | undecided → low |
| resolution: | → worksforme |
| status: | new → closed |
Closing per OPs test case
Here's the test case in jsFiddle:
http://jsfiddle.net/yXPBY/
Toggle between loading the two versions to see the bug occur/not occur.