From 2080becf77b484858b8addbc943765bc501d3aa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=BDiaran?= Date: Wed, 2 Feb 2022 16:59:14 +0100 Subject: [PATCH] =?UTF-8?q?-=20P=C5=99id=C3=A1no=20option=20`overlayPreven?= =?UTF-8?q?tClose`=20p=C5=99es=20voliteln=C3=BD=20atribut=20`data-pdbox-ov?= =?UTF-8?q?erlay-prevent-close=3D"true"`=20zabra=C5=88uj=C3=ADc=C3=AD=20vy?= =?UTF-8?q?pnut=C3=AD=20pdBoxu=20kliknut=C3=ADm=20na=20overlay?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ bower.json | 2 +- dist/js/jquery.pdbox.js | 12 +++++++++--- dist/js/jquery.pdbox.min.js | 4 ++-- example/index.html | 10 ++++++++++ package.json | 2 +- src/js/jquery.pdbox.js | 8 +++++++- 7 files changed, 33 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index b64a3b5..e7abde1 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,9 @@ $ cat bower.json ## Changelog +### v1.3.15 +- přidáno option `overlayPreventClose` přes volitelný atribut `data-pdbox-overlay-prevent-close="true"` zabraňující vypnutí pdBoxu kliknutím na overlay + ### v1.3.14 - oprava srbského překladu diff --git a/bower.json b/bower.json index a96b053..7ea6131 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery.pdbox", - "version": "1.3.14", + "version": "1.3.15", "homepage": "https://github.com/peckadesign/jquery.pdbox", "authors": [ "PeckaDesign, s.r.o " diff --git a/dist/js/jquery.pdbox.js b/dist/js/jquery.pdbox.js index 4594ce4..0715147 100644 --- a/dist/js/jquery.pdbox.js +++ b/dist/js/jquery.pdbox.js @@ -3,10 +3,10 @@ * https://github.com/peckadesign/jquery.pdbox * * @author PeckaDesign, s.r.o - * @copyright Copyright (c) 2014-2021 PeckaDesign, s.r.o + * @copyright Copyright (c) 2014-2022 PeckaDesign, s.r.o * @license MIT * - * @version 1.3.14 + * @version 1.3.15 */ $.pdBox = (function () { @@ -21,6 +21,7 @@ $.pdBox = (function () { block: 'nearest', inline: 'center' }, + overlayPreventClose: false, infinitePager: false, lang: ($('html').attr('lang') || 'cs') }; @@ -265,6 +266,7 @@ $.pdBox = (function () { elOptions.width = this.$el.data('pdboxWidth'); elOptions.className = this.$el.data('pdboxClassName') ? this.$el.data('pdboxClassName') + ' ' + this.defaults.className : this.defaults.className; + elOptions.overlayPreventClose = this.$el.data('pdboxOverlayPreventClose') ? this.$el.data('pdboxOverlayPreventClose') : this.defaults.overlayPreventClose; for (i = 0; i < events.length; i++) { dataName = getEventDataName(events[i]); @@ -728,7 +730,11 @@ $.pdBox = (function () { function windowElemClickHandler(e) { var $el = $(e.target).closest('a'); - if(e.target === this.window.elem[0] || (this.window.elem.has(e.target).length && ($el.hasClass('pdbox__close') || $el.hasClass('pdbox__close--alternative')))) { + + if( + (!this.options.overlayPreventClose && e.target === this.window.elem[0]) + || (this.window.elem.has(e.target).length && ($el.hasClass('pdbox__close') || $el.hasClass('pdbox__close--alternative'))) + ) { this.close(e); e.preventDefault(); } diff --git a/dist/js/jquery.pdbox.min.js b/dist/js/jquery.pdbox.min.js index 382c4ab..7d3e820 100644 --- a/dist/js/jquery.pdbox.min.js +++ b/dist/js/jquery.pdbox.min.js @@ -1,3 +1,3 @@ -/*! jQuery pdBox 1.3.14 | MIT | PeckaDesign, s.r.o, https://github.com/peckadesign/jquery.pdbox */ +/*! jQuery pdBox 1.3.15 | MIT | PeckaDesign, s.r.o, https://github.com/peckadesign/jquery.pdbox */ -$.pdBox=function(){var n={width:900,className:"",imageThumbnails:!1,imageThumbnailsAlign:{behavior:"smooth",block:"nearest",inline:"center"},infinitePager:!1,lang:$("html").attr("lang")||"cs"},s={cs:{close:"Zavřít",prev:"Předchozí",next:"Další",of:"/"},sk:{close:"Zavrieť",prev:"Predchádzajúca",next:"Ďalšie",of:"/"},en:{close:"Close",prev:"Previous",next:"Next",of:"/"},de:{close:"Zumachen",prev:"Vorige",next:"Folgend",of:"/"},es:{close:"Vaer",prev:"Previo",next:"Siguiente",of:"/"},fr:{close:"Fermer",prev:"Précédant",next:"Suivant",of:"/"},it:{close:"Chiudere",prev:"Previo",next:"Veniente",of:"/"},ro:{close:"Închide",prev:"Anterior",next:"Următor",of:"/"},sr:{close:"Zatvori",prev:"Prethodna",next:"Sledeći",of:"/"},ru:{close:"закрыть",prev:"Предшествующий",next:"Последующий",of:"/"}},a=["beforeOpen","afterOpen","load","beforeClose","afterClose"];function e(e){for(var t in e=e||{},this.defaults={},n)n.hasOwnProperty(t)&&(this.defaults[t]=(void 0!==e[t]?e:n)[t]);var i;this.defaults.className=n.className+(e.className?" "+e.className:""),this.options=$.extend({},n,e),e.template&&(this.options.template=e.template.toString()),"object"==typeof e.langs?this.langs=$.extend({},s,e.langs):this.langs=s,this.options.lang in this.langs||(this.options.lang="en"),this.isOpen=!1,this.setOnOpenOptions=!1,this.isAjax=e.isAjax||!1,this.isInner=e.isInner||!1,this.events={},this.overlay=null,this.rootElem={},this.window={},this.$doc=$(document),this.$body=$("body"),this.spinnerHtml=e.spinnerHtml||"",this.html="function"==typeof e.template?e.template(this):($content="
\t
\t\t

\t\t
"+((i=this).isAjax?"
":"")+"\t\t
\t\t

\t\t\t"+i.langs[i.options.lang].prev+"\t\t\t\t\t\t"+i.langs[i.options.lang].of+"\t\t\t"+i.langs[i.options.lang].next+"\t\t

\t\t

\t\t
"+i.spinnerHtml+"\t\t "+i.langs[i.options.lang].close+"\t
",$content),this.$el=null;for(var o,t=0;t'),e.rootElem.html(e.html).prependTo(e.$body),e.window.elem=e.rootElem.find(".pdbox__window"),e.window.close=e.window.elem.find(".pdbox__close"),e.window.title=e.window.elem.find(".pdbox__title"),e.window.content=e.window.elem.find(".pdbox__content"),e.window.descWrap=e.window.elem.find(".pdbox__desc"),e.window.desc=e.window.elem.find(".pdbox__snippet"),e.window.desc.length||(e.window.desc=e.window.descWrap);e.window.pager={elem:e.window.elem.find(".pdbox__pager"),pages:e.window.elem.find(".pdbox__pages"),pagesSummary:e.window.elem.find(".pdbox__pages-summary"),activePage:e.window.elem.find(".pdbox__active-page"),pagesCount:e.window.elem.find(".pdbox__pages-count"),prev:e.window.elem.find(".pdbox__page--prev"),next:e.window.elem.find(".pdbox__page--next"),thumbnails:e.window.elem.find(".pdbox__pager--thumbnails")},e.window.media=e.window.elem.find(".pdbox__media-box"),$(document).on("click.pdbox",".pdbox__close, .pdbox__close--alternative",$.proxy(m,e)),e.$doc.on("keyup.pdbox",$.proxy(h,e))}(this),(o=this).overlay=$('
').prependTo(o.rootElem),i||this.rootElem.addClass("pdbox--loading"),this.isInner&&this.rootElem.addClass("pdbox--inner"),this.setOptions(),this.setOnOpenOptions=!1),this.addEventListener("load",this.setOptions),this.window.elem.on("click",$.proxy(m,this)),this.$body.addClass("pdbox-open"),this.window.pager.elem.hide(),this.window.pager.thumbnails.hide(),this.window.media.hide(),this.window.title.hide(),void 0!==e&&void 0!==t&&e.is(":not(.ajax)")&&function(o,e,t){var i=e.data("rel");{var n,s,a,d;i&&(t=$(t),n=$([]),s=t.filter('[data-rel="'+i+'"]'),a="",s.each(function(e){a+=" "+(e+1)+" "}),o.window.pager.pages.empty().append(a),o.options.imageThumbnails?(d="",s.each(function(e){d+="
  • "}),o.window.pager.thumbnails.append($('
      ')).find(".pdbox__thumbnail-list").append(d),o.window.pager.thumbnails.show(),n=o.window.pager.thumbnails.find("a")):o.window.pager.thumbnails.hide(),$numbers=o.window.pager.pages.find("a"),$numbers.on("click.pdbox open.pdbox",function(e){var t=$(this),i=$numbers.index(this);$numbers.removeClass("pdbox__page--active"),t.addClass("pdbox__page--active"),n.length&&(n.removeClass("pdbox__thumbnail-link--active"),n.eq(i).addClass("pdbox__thumbnail-link--active"),t=o.options.imageThumbnailsAlign,"function"==typeof o.options.imageThumbnailsAlign&&(t=o.options.imageThumbnailsAlign()),"open"===e.type&&"object"==typeof t&&"smooth"===t.behavior&&((t=$.extend({},o.options.imageThumbnailsAlign)).behavior="auto"),n[i].scrollIntoView(t)),o.window.pager.activePage.text(i+1),o.options.infinitePager||(0===i?o.window.pager.prev.addClass("pdbox__page--disabled"):o.window.pager.prev.removeClass("pdbox__page--disabled"),i===$numbers.length-1?o.window.pager.next.addClass("pdbox__page--disabled"):o.window.pager.next.removeClass("pdbox__page--disabled")),function(t,e,i){var o=i.find("img"),n=i.data("pdbox-title")||o.attr("alt")||i.attr("title"),s=i.data("pdbox-description")||o.attr("title")||"",o=i.data("pdbox-srcset");t.rootElem.addClass("pdbox--loading pdbox--media"),t.window.media.show(),n?t.window.title.show().text(n):t.window.title.hide();s?(t.window.descWrap.show(),t.window.desc.html("

      "+s+"

      ")):t.window.descWrap.hide();var a=i.data("pdbox-video"),s="pdbox__media "+(a?"pdbox__media--video":"pdbox__media--image"),e={src:e};preloader=document.createElement(a?"iframe":"img"),$(preloader).on("load insert",function(e){(!a&&"load"===e.type||a&&"insert"===e.type)&&t.window.media.html(this),"load"===e.type&&t.dispatchEvent("load",{element:i,content:preloader})}),a?(e.allowfullscreen=!0,e.width=t.options.width,e.height=t.options.width/(16/9)):o&&(e.srcset=o,(o=(o=i.data("pdbox-sizes"))||t.options.sizes)&&(e.sizes=o));$(preloader).addClass(s).attr(e),a&&$(preloader).triggerHandler("insert")}(o,this.href,s.eq(i)),e.preventDefault()}).eq(s.index(e)).trigger("open.pdbox"),n.length&&n.on("click.pdbox",function(e){e.preventDefault(),$numbers.eq(n.index(this)).trigger("click.pdbox")}),o.window.pager.prev.on("click.pdbox",function(e){e.preventDefault();e=o.window.pager.pages.find(".pdbox__page--active").prev();0===e.length&&o.options.infinitePager&&(e=o.window.pager.pages.find(".pdbox__page").last()),e.length&&e.trigger("click.pdbox")}),o.window.pager.next.on("click.pdbox",function(e){e.preventDefault();e=o.window.pager.pages.find(".pdbox__page--active").next();0===e.length&&o.options.infinitePager&&(e=o.window.pager.pages.find(".pdbox__page").first()),e.length&&e.trigger("click.pdbox")}),o.$doc.on("keyup.pdbox",$.proxy(c,o)),1<$numbers.length&&(o.window.pager.elem.show(),o.window.pager.pagesCount.text($numbers.length)))}}(this,e,t),this.dispatchEvent("afterOpen",{element:e})},e.prototype.close=function(t){var i,e,o;this.isOpen&&(i=this.$el,this.isOpen=!1,this.$el=null,this.removeEventListener("load",this.setOptions),this.rootElem.addClass("pdbox--closing"),this.dispatchEvent("beforeClose",{element:i,event:t}),this.window.elem.off(),e=parseInt(getComputedStyle(this.rootElem[0]).getPropertyValue("--pdbox-closing-duration")||0),o=this,setTimeout(function(){var e;(e=o).window.close.off(),e.window.pager.next.off(),e.window.pager.prev.off(),e.window.pager.pages.find("a").off(),e.window.pager.thumbnails.off(),e.overlay.off(),e.$doc.off("keyup.pdbox"),e.rootElem.remove(),o.isInner||o.$body.removeClass("pdbox-open pdbox-open--scrollbar-offset"),o.dispatchEvent("afterClose",{element:i,event:t})},e))},e.prototype.content=function(e){if(void 0===e){var t=this.window.elem.clone();return t.find(".ajax-overlay, .ajax-loader").remove(),t.html()}this.window.elem.html(e),this.window.content=this.window.elem.find(".pdbox__content")},e.prototype.setOptions=function(e,t){var i,o,n;if(this.setOnOpenOptions)for($.extend(this.options,this.defaults),i=0;idocument.documentElement.clientHeight?this.window.elem.addClass("pdbox__window--scrollbar-offset"):this.window.elem.removeClass("pdbox__window--scrollbar-offset")}function m(e){var t=$(e.target).closest("a");(e.target===this.window.elem[0]||this.window.elem.has(e.target).length&&(t.hasClass("pdbox__close")||t.hasClass("pdbox__close--alternative")))&&(this.close(e),e.preventDefault())}return e.prototype.openHtml=function(e,t){var i=t.data("pdbox-title");this.open(t,void 0,!0),this.window.descWrap.show(),this.window.desc.html(e),i?this.window.title.show().text(i):this.window.title.hide(),this.dispatchEvent("load",{element:t,content:e})},e.prototype.openUrl=function(e,t){this.open(t,void 0,!1),$.ajax({url:e,success:$.proxy(function(e){this.window.descWrap.show(),this.window.desc.html(e),this.dispatchEvent("load",{element:t,content:e})},this)})},e}(); \ No newline at end of file +$.pdBox=function(){var n={width:900,className:"",imageThumbnails:!1,imageThumbnailsAlign:{behavior:"smooth",block:"nearest",inline:"center"},overlayPreventClose:!1,infinitePager:!1,lang:$("html").attr("lang")||"cs"},s={cs:{close:"Zavřít",prev:"Předchozí",next:"Další",of:"/"},sk:{close:"Zavrieť",prev:"Predchádzajúca",next:"Ďalšie",of:"/"},en:{close:"Close",prev:"Previous",next:"Next",of:"/"},de:{close:"Zumachen",prev:"Vorige",next:"Folgend",of:"/"},es:{close:"Vaer",prev:"Previo",next:"Siguiente",of:"/"},fr:{close:"Fermer",prev:"Précédant",next:"Suivant",of:"/"},it:{close:"Chiudere",prev:"Previo",next:"Veniente",of:"/"},ro:{close:"Închide",prev:"Anterior",next:"Următor",of:"/"},sr:{close:"Zatvori",prev:"Prethodna",next:"Sledeći",of:"/"},ru:{close:"закрыть",prev:"Предшествующий",next:"Последующий",of:"/"}},a=["beforeOpen","afterOpen","load","beforeClose","afterClose"];function e(e){for(var t in e=e||{},this.defaults={},n)n.hasOwnProperty(t)&&(this.defaults[t]=(void 0!==e[t]?e:n)[t]);var i;this.defaults.className=n.className+(e.className?" "+e.className:""),this.options=$.extend({},n,e),e.template&&(this.options.template=e.template.toString()),"object"==typeof e.langs?this.langs=$.extend({},s,e.langs):this.langs=s,this.options.lang in this.langs||(this.options.lang="en"),this.isOpen=!1,this.setOnOpenOptions=!1,this.isAjax=e.isAjax||!1,this.isInner=e.isInner||!1,this.events={},this.overlay=null,this.rootElem={},this.window={},this.$doc=$(document),this.$body=$("body"),this.spinnerHtml=e.spinnerHtml||"",this.html="function"==typeof e.template?e.template(this):($content="
      \t
      \t\t

      \t\t
      "+((i=this).isAjax?"
      ":"")+"\t\t
      \t\t

      \t\t\t"+i.langs[i.options.lang].prev+"\t\t\t\t\t\t"+i.langs[i.options.lang].of+"\t\t\t"+i.langs[i.options.lang].next+"\t\t

      \t\t

      \t\t
      "+i.spinnerHtml+"\t\t "+i.langs[i.options.lang].close+"\t
      ",$content),this.$el=null;for(var o,t=0;t'),e.rootElem.html(e.html).prependTo(e.$body),e.window.elem=e.rootElem.find(".pdbox__window"),e.window.close=e.window.elem.find(".pdbox__close"),e.window.title=e.window.elem.find(".pdbox__title"),e.window.content=e.window.elem.find(".pdbox__content"),e.window.descWrap=e.window.elem.find(".pdbox__desc"),e.window.desc=e.window.elem.find(".pdbox__snippet"),e.window.desc.length||(e.window.desc=e.window.descWrap);e.window.pager={elem:e.window.elem.find(".pdbox__pager"),pages:e.window.elem.find(".pdbox__pages"),pagesSummary:e.window.elem.find(".pdbox__pages-summary"),activePage:e.window.elem.find(".pdbox__active-page"),pagesCount:e.window.elem.find(".pdbox__pages-count"),prev:e.window.elem.find(".pdbox__page--prev"),next:e.window.elem.find(".pdbox__page--next"),thumbnails:e.window.elem.find(".pdbox__pager--thumbnails")},e.window.media=e.window.elem.find(".pdbox__media-box"),$(document).on("click.pdbox",".pdbox__close, .pdbox__close--alternative",$.proxy(m,e)),e.$doc.on("keyup.pdbox",$.proxy(h,e))}(this),(o=this).overlay=$('
      ').prependTo(o.rootElem),i||this.rootElem.addClass("pdbox--loading"),this.isInner&&this.rootElem.addClass("pdbox--inner"),this.setOptions(),this.setOnOpenOptions=!1),this.addEventListener("load",this.setOptions),this.window.elem.on("click",$.proxy(m,this)),this.$body.addClass("pdbox-open"),this.window.pager.elem.hide(),this.window.pager.thumbnails.hide(),this.window.media.hide(),this.window.title.hide(),void 0!==e&&void 0!==t&&e.is(":not(.ajax)")&&function(o,e,t){var i=e.data("rel");{var n,s,a,d;i&&(t=$(t),n=$([]),s=t.filter('[data-rel="'+i+'"]'),a="",s.each(function(e){a+=" "+(e+1)+" "}),o.window.pager.pages.empty().append(a),o.options.imageThumbnails?(d="",s.each(function(e){d+="
    • "}),o.window.pager.thumbnails.append($('
        ')).find(".pdbox__thumbnail-list").append(d),o.window.pager.thumbnails.show(),n=o.window.pager.thumbnails.find("a")):o.window.pager.thumbnails.hide(),$numbers=o.window.pager.pages.find("a"),$numbers.on("click.pdbox open.pdbox",function(e){var t=$(this),i=$numbers.index(this);$numbers.removeClass("pdbox__page--active"),t.addClass("pdbox__page--active"),n.length&&(n.removeClass("pdbox__thumbnail-link--active"),n.eq(i).addClass("pdbox__thumbnail-link--active"),t=o.options.imageThumbnailsAlign,"function"==typeof o.options.imageThumbnailsAlign&&(t=o.options.imageThumbnailsAlign()),"open"===e.type&&"object"==typeof t&&"smooth"===t.behavior&&((t=$.extend({},o.options.imageThumbnailsAlign)).behavior="auto"),n[i].scrollIntoView(t)),o.window.pager.activePage.text(i+1),o.options.infinitePager||(0===i?o.window.pager.prev.addClass("pdbox__page--disabled"):o.window.pager.prev.removeClass("pdbox__page--disabled"),i===$numbers.length-1?o.window.pager.next.addClass("pdbox__page--disabled"):o.window.pager.next.removeClass("pdbox__page--disabled")),function(t,e,i){var o=i.find("img"),n=i.data("pdbox-title")||o.attr("alt")||i.attr("title"),s=i.data("pdbox-description")||o.attr("title")||"",o=i.data("pdbox-srcset");t.rootElem.addClass("pdbox--loading pdbox--media"),t.window.media.show(),n?t.window.title.show().text(n):t.window.title.hide();s?(t.window.descWrap.show(),t.window.desc.html("

        "+s+"

        ")):t.window.descWrap.hide();var a=i.data("pdbox-video"),s="pdbox__media "+(a?"pdbox__media--video":"pdbox__media--image"),e={src:e};preloader=document.createElement(a?"iframe":"img"),$(preloader).on("load insert",function(e){(!a&&"load"===e.type||a&&"insert"===e.type)&&t.window.media.html(this),"load"===e.type&&t.dispatchEvent("load",{element:i,content:preloader})}),a?(e.allowfullscreen=!0,e.width=t.options.width,e.height=t.options.width/(16/9)):o&&(e.srcset=o,(o=(o=i.data("pdbox-sizes"))||t.options.sizes)&&(e.sizes=o));$(preloader).addClass(s).attr(e),a&&$(preloader).triggerHandler("insert")}(o,this.href,s.eq(i)),e.preventDefault()}).eq(s.index(e)).trigger("open.pdbox"),n.length&&n.on("click.pdbox",function(e){e.preventDefault(),$numbers.eq(n.index(this)).trigger("click.pdbox")}),o.window.pager.prev.on("click.pdbox",function(e){e.preventDefault();e=o.window.pager.pages.find(".pdbox__page--active").prev();0===e.length&&o.options.infinitePager&&(e=o.window.pager.pages.find(".pdbox__page").last()),e.length&&e.trigger("click.pdbox")}),o.window.pager.next.on("click.pdbox",function(e){e.preventDefault();e=o.window.pager.pages.find(".pdbox__page--active").next();0===e.length&&o.options.infinitePager&&(e=o.window.pager.pages.find(".pdbox__page").first()),e.length&&e.trigger("click.pdbox")}),o.$doc.on("keyup.pdbox",$.proxy(c,o)),1<$numbers.length&&(o.window.pager.elem.show(),o.window.pager.pagesCount.text($numbers.length)))}}(this,e,t),this.dispatchEvent("afterOpen",{element:e})},e.prototype.close=function(t){var i,e,o;this.isOpen&&(i=this.$el,this.isOpen=!1,this.$el=null,this.removeEventListener("load",this.setOptions),this.rootElem.addClass("pdbox--closing"),this.dispatchEvent("beforeClose",{element:i,event:t}),this.window.elem.off(),e=parseInt(getComputedStyle(this.rootElem[0]).getPropertyValue("--pdbox-closing-duration")||0),o=this,setTimeout(function(){var e;(e=o).window.close.off(),e.window.pager.next.off(),e.window.pager.prev.off(),e.window.pager.pages.find("a").off(),e.window.pager.thumbnails.off(),e.overlay.off(),e.$doc.off("keyup.pdbox"),e.rootElem.remove(),o.isInner||o.$body.removeClass("pdbox-open pdbox-open--scrollbar-offset"),o.dispatchEvent("afterClose",{element:i,event:t})},e))},e.prototype.content=function(e){if(void 0===e){var t=this.window.elem.clone();return t.find(".ajax-overlay, .ajax-loader").remove(),t.html()}this.window.elem.html(e),this.window.content=this.window.elem.find(".pdbox__content")},e.prototype.setOptions=function(e,t){var i,o,n;if(this.setOnOpenOptions)for($.extend(this.options,this.defaults),i=0;idocument.documentElement.clientHeight?this.window.elem.addClass("pdbox__window--scrollbar-offset"):this.window.elem.removeClass("pdbox__window--scrollbar-offset")}function m(e){var t=$(e.target).closest("a");(!this.options.overlayPreventClose&&e.target===this.window.elem[0]||this.window.elem.has(e.target).length&&(t.hasClass("pdbox__close")||t.hasClass("pdbox__close--alternative")))&&(this.close(e),e.preventDefault())}return e.prototype.openHtml=function(e,t){var i=t.data("pdbox-title");this.open(t,void 0,!0),this.window.descWrap.show(),this.window.desc.html(e),i?this.window.title.show().text(i):this.window.title.hide(),this.dispatchEvent("load",{element:t,content:e})},e.prototype.openUrl=function(e,t){this.open(t,void 0,!1),$.ajax({url:e,success:$.proxy(function(e){this.window.descWrap.show(),this.window.desc.html(e),this.dispatchEvent("load",{element:t,content:e})},this)})},e}(); \ No newline at end of file diff --git a/example/index.html b/example/index.html index f5b1f06..a556d01 100644 --- a/example/index.html +++ b/example/index.html @@ -164,6 +164,16 @@ Video +
      • + + Prevent pdbox close via overlay + +
    diff --git a/package.json b/package.json index 6c243d0..9e0fa66 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "jquery.pdbox", "title": "jQuery pdBox", "description": "pdBox is thickbox-like jQeruy plugin developed in PeckaDesign", - "version": "1.3.14", + "version": "1.3.15", "author": { "name": "PeckaDesign, s.r.o", "email": "support@peckadesign.cz" diff --git a/src/js/jquery.pdbox.js b/src/js/jquery.pdbox.js index 334077e..528a3f7 100644 --- a/src/js/jquery.pdbox.js +++ b/src/js/jquery.pdbox.js @@ -11,6 +11,7 @@ $.pdBox = (function () { block: 'nearest', inline: 'center' }, + overlayPreventClose: false, infinitePager: false, lang: ($('html').attr('lang') || 'cs') }; @@ -255,6 +256,7 @@ $.pdBox = (function () { elOptions.width = this.$el.data('pdboxWidth'); elOptions.className = this.$el.data('pdboxClassName') ? this.$el.data('pdboxClassName') + ' ' + this.defaults.className : this.defaults.className; + elOptions.overlayPreventClose = this.$el.data('pdboxOverlayPreventClose') ? this.$el.data('pdboxOverlayPreventClose') : this.defaults.overlayPreventClose; for (i = 0; i < events.length; i++) { dataName = getEventDataName(events[i]); @@ -718,7 +720,11 @@ $.pdBox = (function () { function windowElemClickHandler(e) { var $el = $(e.target).closest('a'); - if(e.target === this.window.elem[0] || (this.window.elem.has(e.target).length && ($el.hasClass('pdbox__close') || $el.hasClass('pdbox__close--alternative')))) { + + if( + (!this.options.overlayPreventClose && e.target === this.window.elem[0]) + || (this.window.elem.has(e.target).length && ($el.hasClass('pdbox__close') || $el.hasClass('pdbox__close--alternative'))) + ) { this.close(e); e.preventDefault(); }