??'use?strict';
??//?DROPDOWN?CLASS?DEFINITION
??//?=========================
??var?backdrop?=?'.dropdown-backdrop'
??var?toggle???=?'[data-toggle="dropdown"]'
??var?Dropdown?=?function?(element)?{
????$(element).on('click.bs.dropdown',?this.toggle)
??}
??Dropdown.VERSION?=?'3.3.7'
??function?getParent($this)?{
????var?selector?=?$this.attr('data-target')
????if?(!selector)?{
??????selector?=?$this.attr('href')
??????selector?=?selector?&&?/#[A-Za-z]/.test(selector)?&&?selector.replace(/.*(?=#[^\s]*$)/,?'')?//?strip?for?ie7
????}
????var?$parent?=?selector?&&?$(selector)
????return?$parent?&&?$parent.length???$parent?:?$this.parent()
??}
??function?clearMenus(e)?{
????if?(e?&&?e.which?===?3)?return
????$(backdrop).remove()
????$(toggle).each(function?()?{
??????var?$this?????????=?$(this)
??????var?$parent???????=?getParent($this)
??????var?relatedTarget?=?{?relatedTarget:?this?}
??????if?(!$parent.hasClass('open'))?return
??????if?(e?&&?e.type?==?'click'?&&?/input|textarea/i.test(e.target.tagName)?&&?$.contains($parent[0],?e.target))?return
??????$parent.trigger(e?=?$.Event('hide.bs.dropdown',?relatedTarget))
??????if?(e.isDefaultPrevented())?return
??????$this.attr('aria-expanded',?'false')
??????$parent.removeClass('open').trigger($.Event('hidden.bs.dropdown',?relatedTarget))
????})
??}
??Dropdown.prototype.toggle?=?function?(e)?{
????var?$this?=?$(this)
????if?($this.is('.disabled,?:disabled'))?return
????var?$parent??=?getParent($this)
????var?isActive?=?$parent.hasClass('open')
????clearMenus()
????if?(!isActive)?{
??????if?('ontouchstart'?in?document.documentElement?&&?!$parent.closest('.navbar-nav').length)?{
????????//?if?mobile?we?use?a?backdrop?because?click?events?don't?delegate
????????$(document.createElement('div'))
??????????.addClass('dropdown-backdrop')
??????????.insertAfter($(this))
??????????.on('click',?clearMenus)
??????}
??????var?relatedTarget?=?{?relatedTarget:?this?}
??????$parent.trigger(e?=?$.Event('show.bs.dropdown',?relatedTarget))
??????if?(e.isDefaultPrevented())?return
??????$this
????????.trigger('focus')
????????.attr('aria-expanded',?'true')
??????$parent
????????.toggleClass('open')
????????.trigger($.Event('shown.bs.dropdown',?relatedTarget))
????}
????return?false
??}
??Dropdown.prototype.keydown?=?function?(e)?{
????if?(!/(38|40|27|32)/.test(e.which)?||?/input|textarea/i.test(e.target.tagName))?return
????var?$this?=?$(this)
????e.preventDefault()
????e.stopPropagation()
????if?($this.is('.disabled,?:disabled'))?return
????var?$parent??=?getParent($this)
????var?isActive?=?$parent.hasClass('open')
????if?(!isActive?&&?e.which?!=?27?||?isActive?&&?e.which?==?27)?{
??????if?(e.which?==?27)?$parent.find(toggle).trigger('focus')
??????return?$this.trigger('click')
????}
????var?desc?=?'?li:not(.disabled):visible?a'
????var?$items?=?$parent.find('.dropdown-menu'?+?desc)
????if?(!$items.length)?return
????var?index?=?$items.index(e.target)
????if?(e.which?==?38?&&?index?>?0)?????????????????index--?????????//?up
????if?(e.which?==?40?&&?index?<?$items.length?-?1)?index++?????????//?down
????if?(!~index)????????????????????????????????????index?=?0
????$items.eq(index).trigger('focus')
??}
??//?DROPDOWN?PLUGIN?DEFINITION
??//?==========================
??function?Plugin(option)?{
????return?this.each(function?()?{
??????var?$this?=?$(this)
??????var?data??=?$this.data('bs.dropdown')
??????if?(!data)?$this.data('bs.dropdown',?(data?=?new?Dropdown(this)))
??????if?(typeof?option?==?'string')?data[option].call($this)
????})
??}
??var?old?=?$.fn.dropdown
??$.fn.dropdown?????????????=?Plugin
??$.fn.dropdown.Constructor?=?Dropdown
??//?DROPDOWN?NO?CONFLICT
??//?====================
??$.fn.dropdown.noConflict?=?function?()?{
????$.fn.dropdown?=?old
????return?this
??}
??//?APPLY?TO?STANDARD?DROPDOWN?ELEMENTS
??//?===================================
??$(document)
????.on('click.bs.dropdown.data-api',?clearMenus)
????.on('click.bs.dropdown.data-api',?'.dropdown?form',?function?(e)?{?e.stopPropagation()?})
????.on('click.bs.dropdown.data-api',?toggle,?Dropdown.prototype.toggle)
????.on('keydown.bs.dropdown.data-api',?toggle,?Dropdown.prototype.keydown)
????.on('keydown.bs.dropdown.data-api',?'.dropdown-menu',?Dropdown.prototype.keydown)
1 回答

習(xí)慣受傷
TA貢獻(xiàn)885條經(jīng)驗(yàn) 獲得超1144個(gè)贊
data-toggle 這種以 data-?開(kāi)頭的格式放在元素上表示元素?cái)y帶的數(shù)據(jù),如:
<img?id="img"?src="small.jpg"?data-bigimg="big.jpg"?/>
JQuery的?data() 方法可以直接操作,如:
//獲取: var?bigImage?=?$("#img").data("bigimg");//注意,這里不用加?data-
//設(shè)置: $("#img").data("bigimg","newBig.jpg");//注意,這里也不用加?data-
用這種 $("[data-bigimg]") 的方式可以選擇所有具有?data-bigimg 這個(gè)屬性的元素。
- 1 回答
- 0 關(guān)注
- 12981 瀏覽
添加回答
舉報(bào)
0/150
提交
取消