/* * blueimp Gallery jQuery plugin 1.1.0 * https://github.com/blueimp/Gallery * * Copyright 2013, Sebastian Tschan * https://blueimp.net * * Licensed under the MIT license: * http://www.opensource.org/licenses/MIT */ /*global define, window, document */ (function (factory) { 'use strict'; if (typeof define === 'function' && define.amd) { define([ 'jquery', './blueimp-gallery.js' ], factory); } else { factory( window.jQuery, window.blueimp.Gallery ); } }(function ($, Gallery) { 'use strict'; // Global click handler to open links with data-gallery attribute // in the Gallery lightbox: $(document.body).on('click', '[data-gallery]', function (event) { // Get the container id from the data-gallery attribute: var id = $(this).data('gallery'), widget = $(id), container = (widget.length && widget) || $(Gallery.prototype.options.container), options = $.extend( // Retrieve custom options from data-attributes // on the Gallery widget: container.data(), { container: container[0], index: this, event: event, onopen: function () { container .data('gallery', this) .trigger('open', arguments); }, onslide: function () { container.trigger('slide', arguments); }, onslideend: function () { container.trigger('slideend', arguments); }, onslidecomplete: function () { container.trigger('slidecomplete', arguments); }, onclose: function () { container .trigger('close') .removeData('gallery'); } } ), // Select all links with the same data-gallery attribute: links = $('[data-gallery="' + id + '"]'); if (options.filter) { links = links.filter(options.filter); } return new Gallery(links, options); }); }));