twbs--bootstrap/js/bootstrap-alerts.js

104 lines
2.9 KiB
JavaScript
Raw Normal View History

2011-09-11 05:24:31 +00:00
/* ==========================================================
2011-09-12 18:15:32 +00:00
* bootstrap-alerts.js v1.3.0
2011-09-11 05:24:31 +00:00
* http://twitter.github.com/bootstrap/javascript.html#alerts
* ==========================================================
* Copyright 2011 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================== */
(function( $ ){
/* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
* ======================================================= */
var transitionEnd
$(document).ready(function () {
2011-08-28 23:47:38 +00:00
$.support.transition = (function () {
var thisBody = document.body || document.documentElement
, thisStyle = thisBody.style
, support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined
return support
})()
// set CSS transition event type
if ( $.support.transition ) {
transitionEnd = "TransitionEnd"
if ( $.browser.webkit ) {
transitionEnd = "webkitTransitionEnd"
} else if ( $.browser.mozilla ) {
transitionEnd = "transitionend"
} else if ( $.browser.opera ) {
transitionEnd = "oTransitionEnd"
}
}
})
/* ALERT CLASS DEFINITION
* ====================== */
2011-09-12 04:03:17 +00:00
var Alert = function ( content, selector ) {
this.$element = $(content)
2011-09-12 04:03:17 +00:00
.delegate(selector || '.close', 'click', this.close)
}
Alert.prototype = {
2011-09-12 04:03:17 +00:00
close: function (e) {
var $element = $(this).parent('.alert-message')
2011-09-12 04:03:17 +00:00
e && e.preventDefault()
$element.removeClass('in')
2011-08-29 00:52:00 +00:00
function removeElement () {
2011-09-12 04:03:17 +00:00
$element.remove()
}
2011-09-12 04:03:17 +00:00
$.support.transition && $element.hasClass('fade') ?
$element.bind(transitionEnd, removeElement) :
removeElement()
}
}
/* ALERT PLUGIN DEFINITION
* ======================= */
$.fn.alert = function ( options ) {
2011-09-12 04:03:17 +00:00
if ( options === true ) {
return this.data('alert')
}
return this.each(function () {
2011-09-12 04:03:17 +00:00
var $this = $(this)
if ( typeof options == 'string' ) {
return $this.data('alert')[options]()
}
$(this).data('alert', new Alert( this ))
})
}
$(document).ready(function () {
2011-09-12 04:03:17 +00:00
new Alert($('body'), '.alert-message[data-alert] .close')
})
2011-09-16 18:09:26 +00:00
})( window.jQuery || window.ender )