Browse Source

Fixes #1238, Modal classnames are removed by .transition() when set in onStart

pull/1243/merge
jlukic 10 years ago
parent
commit
3e749e6e2f
1 changed files with 37 additions and 21 deletions
  1. 58
      src/definitions/modules/modal.js

58
src/definitions/modules/modal.js

@ -65,6 +65,7 @@ $.fn.modal = function(parameters) {
element = this, element = this,
instance = $module.data(moduleNamespace), instance = $module.data(moduleNamespace),
observer,
module module
; ;
module = { module = {
@ -76,6 +77,7 @@ $.fn.modal = function(parameters) {
module.error(error.dimmer); module.error(error.dimmer);
return; return;
} }
$dimmable = $context $dimmable = $context
.dimmer({ .dimmer({
debug : settings.debug, debug : settings.debug,
@ -88,25 +90,18 @@ $.fn.modal = function(parameters) {
} }
}) })
; ;
if(settings.detachable) { if(settings.detachable) {
$dimmable.dimmer('add content', $module); $dimmable.dimmer('add content', $module);
} }
$dimmer = $dimmable
.dimmer('get dimmer')
;
$dimmer = $dimmable.dimmer('get dimmer');
$otherModals = $module.siblings(selector.modal); $otherModals = $module.siblings(selector.modal);
$allModals = $otherModals.add($module); $allModals = $otherModals.add($module);
module.verbose('Attaching close events', $close); module.verbose('Attaching close events', $close);
$close
.on('click' + eventNamespace, module.event.close)
;
$window
.on('resize' + eventNamespace, module.event.resize)
;
module.bind.events();
module.observeChanges();
module.instantiate(); module.instantiate();
}, },
@ -124,12 +119,22 @@ $.fn.modal = function(parameters) {
.removeData(moduleNamespace) .removeData(moduleNamespace)
.off(eventNamespace) .off(eventNamespace)
; ;
$close
.off(eventNamespace)
;
$context
.dimmer('destroy')
;
$close.off(eventNamespace);
$context.dimmer('destroy');
},
observeChanges: function() {
if('MutationObserver' in window) {
observer = new MutationObserver(function(mutations) {
module.debug('DOM tree modified, updating selector cache');
module.refresh();
});
observer.observe(element, {
childList : true,
subtree : true
});
module.debug('Setting up mutation observer', observer);
}
}, },
refresh: function() { refresh: function() {
@ -160,6 +165,17 @@ $.fn.modal = function(parameters) {
} }
}, },
bind: {
events: function() {
$close
.on('click' + eventNamespace, module.event.close)
;
$window
.on('resize' + eventNamespace, module.event.resize)
;
}
},
event: { event: {
close: function() { close: function() {
module.verbose('Closing element pressed'); module.verbose('Closing element pressed');
@ -255,6 +271,10 @@ $.fn.modal = function(parameters) {
$.proxy(settings.onShow, element)(); $.proxy(settings.onShow, element)();
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) { if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
module.debug('Showing modal with css animations'); module.debug('Showing modal with css animations');
module.cacheSizes();
module.set.position();
module.set.screenHeight();
module.set.type();
$module $module
.transition({ .transition({
debug : settings.debug, debug : settings.debug,
@ -262,10 +282,6 @@ $.fn.modal = function(parameters) {
queue : false, queue : false,
duration : settings.duration, duration : settings.duration,
onStart : function() { onStart : function() {
module.cacheSizes();
module.set.position();
module.set.screenHeight();
module.set.type();
module.set.clickaway(); module.set.clickaway();
}, },
onComplete : function() { onComplete : function() {

Loading…
Cancel
Save