| 2029 | |
| 2030 | |
| 2031 | function handleQueueMarkDefer( elem, type, src ) { |
| 2032 | var deferDataKey = type + "defer", |
| 2033 | queueDataKey = type + "queue", |
| 2034 | markDataKey = type + "mark", |
| 2035 | defer = jQuery._data( elem, deferDataKey ); |
| 2036 | if ( defer && |
| 2037 | ( src === "queue" || !jQuery._data(elem, queueDataKey) ) && |
| 2038 | ( src === "mark" || !jQuery._data(elem, markDataKey) ) ) { |
| 2039 | // Give room for hard-coded callbacks to fire first |
| 2040 | // and eventually mark/queue something else on the element |
| 2041 | setTimeout( function() { |
| 2042 | if ( !jQuery._data( elem, queueDataKey ) && |
| 2043 | !jQuery._data( elem, markDataKey ) ) { |
| 2044 | jQuery.removeData( elem, deferDataKey, true ); |
| 2045 | defer.fire(); |
| 2046 | } |
| 2047 | }, 0 ); |
| 2048 | } |
| 2049 | } |
| 2050 | |
| 2051 | jQuery.extend({ |
| 2052 | |