| 1 | (function( jQuery ) { |
| 2 | |
| 3 | function handleQueueMarkDefer( elem, type, src ) { |
| 4 | var deferDataKey = type + "defer", |
| 5 | queueDataKey = type + "queue", |
| 6 | markDataKey = type + "mark", |
| 7 | defer = jQuery.data( elem, deferDataKey, undefined, true ); |
| 8 | if ( defer && |
| 9 | ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) && |
| 10 | ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) { |
| 11 | // Give room for hard-coded callbacks to fire first |
| 12 | // and eventually mark/queue something else on the element |
| 13 | setTimeout( function() { |
| 14 | if ( !jQuery.data( elem, queueDataKey, undefined, true ) && |
| 15 | !jQuery.data( elem, markDataKey, undefined, true ) ) { |
| 16 | jQuery.removeData( elem, deferDataKey, true ); |
| 17 | defer.resolve(); |
| 18 | } |
| 19 | }, 0 ); |
| 20 | } |
| 21 | } |
| 22 | |
| 23 | jQuery.extend({ |
| 24 | |