UNPKG

bootstrap-multimodal

Version:

A Bootstrap plugin that adds support for multiple open modals.

1 lines 1.39 kB
(function($,window){var MultiModal=function(element){this.$element=$(element);this.modalCount=0};MultiModal.BASE_ZINDEX=1040;MultiModal.prototype.show=function(target){var that=this;var $target=$(target);window.setTimeout(function(){that.modalCount=getModalCount();if(that.modalCount>1)$(".modal-backdrop").not(":first").addClass("hidden");that.adjustModal($target);that.adjustBackdrop()})};MultiModal.prototype.hidden=function(target){this.modalCount=getModalCount();if(this.modalCount){this.adjustBackdrop();$("body").addClass("modal-open")}};function getModalCount(){return $(".modal:visible").length}MultiModal.prototype.adjustModal=function($target){var modalIndex=this.modalCount-1;$target.css("z-index",MultiModal.BASE_ZINDEX+modalIndex*20+10)};MultiModal.prototype.adjustBackdrop=function(){var modalIndex=this.modalCount-1;$(".modal-backdrop:first").css("z-index",MultiModal.BASE_ZINDEX+modalIndex*20)};function Plugin(method,target){return this.each(function(){var $this=$(this);var data=$this.data("multi-modal-plugin");if(!data)$this.data("multi-modal-plugin",data=new MultiModal(this));if(method)data[method](target)})}$.fn.multiModal=Plugin;$.fn.multiModal.Constructor=MultiModal;$(document).on("show.bs.modal",function(e){$(document).multiModal("show",e.target)});$(document).on("hidden.bs.modal",function(e){$(document).multiModal("hidden",e.target)})})(jQuery,window);