| 1704 | |
| 1705 | |
| 1706 | function handleQueueMarkDefer( elem, type, src ) { |
| 1707 | var deferDataKey = type + "defer", |
| 1708 | queueDataKey = type + "queue", |
| 1709 | markDataKey = type + "mark", |
| 1710 | defer = jQuery.data( elem, deferDataKey, undefined, true ); |
| 1711 | if ( defer && |
| 1712 | ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) && |
| 1713 | ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) { |
| 1714 | // Give room for hard-coded callbacks to fire first |
| 1715 | // and eventually mark/queue something else on the element |
| 1716 | setTimeout( function() { |
| 1717 | if ( !jQuery.data( elem, queueDataKey, undefined, true ) && |
| 1718 | !jQuery.data( elem, markDataKey, undefined, true ) ) { |
| 1719 | jQuery.removeData( elem, deferDataKey, true ); |
| 1720 | defer.resolve(); |
| 1721 | } |
| 1722 | }, 0 ); |
| 1723 | } |
| 1724 | } |
| 1725 | |
| 1726 | jQuery.extend({ |
| 1727 | |