ddd-jquery
Version:
de-bowerified, de-amdified, de-gruntified... jQuery.
48 lines • 1.43 kB
JavaScript
var jQuery = require('../core'), __unnameddep__ = require('../core/init'), __unnameddep__ = require('../deferred');
var readyList;
jQuery.fn.ready = function (fn) {
jQuery.ready.promise().done(fn);
return this;
};
jQuery.extend({
isReady: false,
readyWait: 1,
holdReady: function (hold) {
if (hold) {
jQuery.readyWait++;
} else {
jQuery.ready(true);
}
},
ready: function (wait) {
if (wait === true ? --jQuery.readyWait : jQuery.isReady) {
return;
}
jQuery.isReady = true;
if (wait !== true && --jQuery.readyWait > 0) {
return;
}
readyList.resolveWith(document, [jQuery]);
if (jQuery.fn.trigger) {
jQuery(document).trigger('ready').off('ready');
}
}
});
function completed() {
document.removeEventListener('DOMContentLoaded', completed, false);
window.removeEventListener('load', completed, false);
jQuery.ready();
}
jQuery.ready.promise = function (obj) {
if (!readyList) {
readyList = jQuery.Deferred();
if (document.readyState === 'complete') {
setTimeout(jQuery.ready);
} else {
document.addEventListener('DOMContentLoaded', completed, false);
window.addEventListener('load', completed, false);
}
}
return readyList.promise(obj);
};
jQuery.ready.promise();