1/* ========================================================== 2 * bootstrap-alert.js v2.3.1 3 * http://twitter.github.com/bootstrap/javascript.html#alerts 4 * ========================================================== 5 * Copyright 2012 Twitter, Inc. 6 * 7 * Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 * ========================================================== */ 19 20 21!function ($) { 22 23 "use strict"; // jshint ;_; 24 25 26 /* ALERT CLASS DEFINITION 27 * ====================== */ 28 29 var dismiss = '[data-dismiss="alert"]' 30 , Alert = function (el) { 31 $(el).on('click', dismiss, this.close) 32 } 33 34 Alert.prototype.close = function (e) { 35 var $this = $(this) 36 , selector = $this.attr('data-target') 37 , $parent 38 39 if (!selector) { 40 selector = $this.attr('href') 41 selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 42 } 43 44 $parent = $(selector) 45 46 e && e.preventDefault() 47 48 $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) 49 50 $parent.trigger(e = $.Event('close')) 51 52 if (e.isDefaultPrevented()) return 53 54 $parent.removeClass('in') 55 56 function removeElement() { 57 $parent 58 .trigger('closed') 59 .remove() 60 } 61 62 $.support.transition && $parent.hasClass('fade') ? 63 $parent.on($.support.transition.end, removeElement) : 64 removeElement() 65 } 66 67 68 /* ALERT PLUGIN DEFINITION 69 * ======================= */ 70 71 var old = $.fn.alert 72 73 $.fn.alert = function (option) { 74 return this.each(function () { 75 var $this = $(this) 76 , data = $this.data('alert') 77 if (!data) $this.data('alert', (data = new Alert(this))) 78 if (typeof option == 'string') data[option].call($this) 79 }) 80 } 81 82 $.fn.alert.Constructor = Alert 83 84 85 /* ALERT NO CONFLICT 86 * ================= */ 87 88 $.fn.alert.noConflict = function () { 89 $.fn.alert = old 90 return this 91 } 92 93 94 /* ALERT DATA-API 95 * ============== */ 96 97 $(document).on('click.alert.data-api', dismiss, Alert.prototype.close) 98 99}(window.jQuery);