Revision 82e47ae0
Added by Amos Benari about 12 years ago
- ID 82e47ae0f86994702c3a084cc6150250a81034ee
public/javascripts/bootstrap-dropdown.js | ||
---|---|---|
/* ============================================================
|
||
* bootstrap-dropdown.js v1.3.0
|
||
* http://twitter.github.com/bootstrap/javascript.html#dropdown
|
||
* bootstrap-dropdown.js v2.0.2
|
||
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
|
||
* ============================================================
|
||
* Copyright 2011 Twitter, Inc.
|
||
* Copyright 2012 Twitter, Inc.
|
||
*
|
||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
* you may not use this file except in compliance with the License.
|
||
... | ... | |
|
||
!function( $ ){
|
||
|
||
"use strict"
|
||
|
||
/* DROPDOWN CLASS DEFINITION
|
||
* ========================= */
|
||
|
||
var toggle = '[data-toggle="dropdown"]'
|
||
, Dropdown = function ( element ) {
|
||
var $el = $(element).on('click.dropdown.data-api', this.toggle)
|
||
$('html').on('click.dropdown.data-api', function () {
|
||
$el.parent().removeClass('open')
|
||
})
|
||
}
|
||
|
||
Dropdown.prototype = {
|
||
|
||
constructor: Dropdown
|
||
|
||
, toggle: function ( e ) {
|
||
var $this = $(this)
|
||
, selector = $this.attr('data-target')
|
||
, $parent
|
||
, isActive
|
||
|
||
if (!selector) {
|
||
selector = $this.attr('href')
|
||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||
}
|
||
|
||
$parent = $(selector)
|
||
$parent.length || ($parent = $this.parent())
|
||
|
||
isActive = $parent.hasClass('open')
|
||
|
||
clearMenus()
|
||
!isActive && $parent.toggleClass('open')
|
||
|
||
return false
|
||
}
|
||
|
||
}
|
||
|
||
function clearMenus() {
|
||
$(toggle).parent().removeClass('open')
|
||
}
|
||
|
||
|
||
/* DROPDOWN PLUGIN DEFINITION
|
||
* ========================== */
|
||
|
||
$.fn.dropdown = function ( selector ) {
|
||
$.fn.dropdown = function ( option ) {
|
||
return this.each(function () {
|
||
$(this).delegate(selector || d, 'click', function (e) {
|
||
var li = $(this).parent('li')
|
||
, isActive = li.hasClass('open');
|
||
|
||
clearMenus()
|
||
!isActive && li.toggleClass('open')
|
||
return false
|
||
})
|
||
var $this = $(this)
|
||
, data = $this.data('dropdown')
|
||
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
|
||
if (typeof option == 'string') data[option].call($this)
|
||
})
|
||
}
|
||
|
||
/* APPLY TO STANDARD DROPDOWN ELEMENTS
|
||
* =================================== */
|
||
$.fn.dropdown.Constructor = Dropdown
|
||
|
||
var d = 'a.menu, .dropdown-toggle'
|
||
|
||
function clearMenus() {
|
||
$(d).parent('li').removeClass('open')
|
||
}
|
||
/* APPLY TO STANDARD DROPDOWN ELEMENTS
|
||
* =================================== */
|
||
|
||
$(function () {
|
||
$('html').bind("click", clearMenus)
|
||
$('body').dropdown( '[data-dropdown] a.menu, [data-dropdown] .dropdown-toggle' )
|
||
$('html').on('click.dropdown.data-api', clearMenus)
|
||
$('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
||
})
|
||
|
||
}( window.jQuery || window.ender );
|
||
}( window.jQuery );
|
Also available in: Unified diff
updates UI to bootstrap v2