83 lines
1.5 KiB
JavaScript
83 lines
1.5 KiB
JavaScript
var AJAX_NS = 'ajax',
|
|
_ajaxCur,
|
|
_removeAjaxCursor = function() {
|
|
if(_ajaxCur) {
|
|
$(document.body).removeClass(_ajaxCur);
|
|
}
|
|
},
|
|
_destroyAjaxRequest = function() {
|
|
_removeAjaxCursor();
|
|
if(mfp.req) {
|
|
mfp.req.abort();
|
|
}
|
|
};
|
|
|
|
$.magnificPopup.registerModule(AJAX_NS, {
|
|
|
|
options: {
|
|
settings: null,
|
|
cursor: 'mfp-ajax-cur',
|
|
tError: '<a href="%url%">The content</a> could not be loaded.'
|
|
},
|
|
|
|
proto: {
|
|
initAjax: function() {
|
|
mfp.types.push(AJAX_NS);
|
|
_ajaxCur = mfp.st.ajax.cursor;
|
|
|
|
_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);
|
|
_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);
|
|
},
|
|
getAjax: function(item) {
|
|
|
|
if(_ajaxCur) {
|
|
$(document.body).addClass(_ajaxCur);
|
|
}
|
|
|
|
mfp.updateStatus('loading');
|
|
|
|
var opts = $.extend({
|
|
url: item.src,
|
|
success: function(data, textStatus, jqXHR) {
|
|
var temp = {
|
|
data:data,
|
|
xhr:jqXHR
|
|
};
|
|
|
|
_mfpTrigger('ParseAjax', temp);
|
|
|
|
mfp.appendContent( $(temp.data), AJAX_NS );
|
|
|
|
item.finished = true;
|
|
|
|
_removeAjaxCursor();
|
|
|
|
mfp._setFocus();
|
|
|
|
setTimeout(function() {
|
|
mfp.wrap.addClass(READY_CLASS);
|
|
}, 16);
|
|
|
|
mfp.updateStatus('ready');
|
|
|
|
_mfpTrigger('AjaxContentAdded');
|
|
},
|
|
error: function() {
|
|
_removeAjaxCursor();
|
|
item.finished = item.loadError = true;
|
|
mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));
|
|
}
|
|
}, mfp.st.ajax.settings);
|
|
|
|
mfp.req = $.ajax(opts);
|
|
|
|
return '';
|
|
}
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|