| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- var INLINE_NS = 'inline',
- _hiddenClass,
- _inlinePlaceholder,
- _lastInlineElement,
- _putInlineElementsBack = function() {
- if(_lastInlineElement) {
- _inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();
- _lastInlineElement = null;
- }
- };
- $.magnificPopup.registerModule(INLINE_NS, {
- options: {
- hiddenClass: 'hide', // will be appended with `mfp-` prefix
- markup: '',
- tNotFound: 'Content not found'
- },
- proto: {
- initInline: function() {
- mfp.types.push(INLINE_NS);
- _mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {
- _putInlineElementsBack();
- });
- },
- getInline: function(item, template) {
- _putInlineElementsBack();
- if(item.src) {
- var inlineSt = mfp.st.inline,
- el = $(item.src);
- if(el.length) {
- // If target element has parent - we replace it with placeholder and put it back after popup is closed
- var parent = el[0].parentNode;
- if(parent && parent.tagName) {
- if(!_inlinePlaceholder) {
- _hiddenClass = inlineSt.hiddenClass;
- _inlinePlaceholder = _getEl(_hiddenClass);
- _hiddenClass = 'mfp-'+_hiddenClass;
- }
- // replace target inline element with placeholder
- _lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);
- }
- mfp.updateStatus('ready');
- } else {
- mfp.updateStatus('error', inlineSt.tNotFound);
- el = $('<div>');
- }
- item.inlineElement = el;
- return el;
- }
- mfp.updateStatus('ready');
- mfp._parseMarkup(template, {}, item);
- return template;
- }
- }
- });
|