| /*jslint unparam: true, browser: true, indent: 2 */ |
| |
| ;(function ($, window, document, undefined) { |
| 'use strict'; |
| |
| Foundation.libs.alerts = { |
| name : 'alerts', |
| |
| version : '4.3.2', |
| |
| settings : { |
| animation: 'fadeOut', |
| speed: 300, // fade out speed |
| callback: function (){} |
| }, |
| |
| init : function (scope, method, options) { |
| this.scope = scope || this.scope; |
| Foundation.inherit(this, 'data_options'); |
| |
| if (typeof method === 'object') { |
| $.extend(true, this.settings, method); |
| } |
| |
| if (typeof method !== 'string') { |
| if (!this.settings.init) { this.events(); } |
| |
| return this.settings.init; |
| } else { |
| return this[method].call(this, options); |
| } |
| }, |
| |
| events : function () { |
| var self = this; |
| |
| $(this.scope).on('click.fndtn.alerts', '[data-alert] a.close', function (e) { |
| var alertBox = $(this).closest("[data-alert]"), |
| settings = $.extend({}, self.settings, self.data_options(alertBox)); |
| |
| e.preventDefault(); |
| alertBox[settings.animation](settings.speed, function () { |
| $(this).remove(); |
| settings.callback(); |
| }); |
| }); |
| |
| this.settings.init = true; |
| }, |
| |
| off : function () { |
| $(this.scope).off('.fndtn.alerts'); |
| }, |
| |
| reflow : function () {} |
| }; |
| }(Foundation.zj, this, this.document)); |