Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Bootstrap
bootstrap
Commits
2b302f69
Commit
2b302f69
authored
10 years ago
by
fat
Browse files
Options
Download
Email Patches
Plain Diff
some changes from #13801 - add strict mode back and ==
parent
696632d7
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
js/.jshintrc
+1
-0
js/.jshintrc
js/affix.js
+98
-96
js/affix.js
js/alert.js
+61
-59
js/alert.js
js/button.js
+79
-77
js/button.js
js/carousel.js
+175
-173
js/carousel.js
js/collapse.js
+123
-121
js/collapse.js
js/dropdown.js
+104
-102
js/dropdown.js
js/modal.js
+208
-206
js/modal.js
js/popover.js
+80
-78
js/popover.js
js/scrollspy.js
+133
-131
js/scrollspy.js
js/tab.js
+93
-91
js/tab.js
js/tooltip.js
+351
-349
js/tooltip.js
js/transition.js
+45
-43
js/transition.js
with
1551 additions
and
1526 deletions
+1551
-1526
js/.jshintrc
+
1
-
0
View file @
2b302f69
...
...
@@ -9,6 +9,7 @@
"latedef" : true,
"laxbreak" : true,
"nonbsp" : true,
"strict" : true,
"undef" : true,
"unused" : true,
"predef" : [ "define", "require" ]
...
...
This diff is collapsed.
Click to expand it.
js/affix.js
+
98
-
96
View file @
2b302f69
...
...
@@ -7,140 +7,142 @@
* ======================================================================== */
(
function
(
o_o
)
{
typeof
define
===
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
===
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
+
function
()
{
'
use strict
'
;
'
use strict
'
;
(
function
(
o_o
)
{
typeof
define
==
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
==
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
// AFFIX CLASS DEFINITION
// ======================
// AFFIX CLASS DEFINITION
// ======================
var
Affix
=
function
(
element
,
options
)
{
this
.
options
=
$
.
extend
({},
Affix
.
DEFAULTS
,
options
)
var
Affix
=
function
(
element
,
options
)
{
this
.
options
=
$
.
extend
({},
Affix
.
DEFAULTS
,
options
)
this
.
$target
=
$
(
this
.
options
.
target
)
.
on
(
'
scroll.bs.affix.data-api
'
,
$
.
proxy
(
this
.
checkPosition
,
this
))
.
on
(
'
click.bs.affix.data-api
'
,
$
.
proxy
(
this
.
checkPositionWithEventLoop
,
this
))
this
.
$target
=
$
(
this
.
options
.
target
)
.
on
(
'
scroll.bs.affix.data-api
'
,
$
.
proxy
(
this
.
checkPosition
,
this
))
.
on
(
'
click.bs.affix.data-api
'
,
$
.
proxy
(
this
.
checkPositionWithEventLoop
,
this
))
this
.
$element
=
$
(
element
)
this
.
affixed
=
this
.
unpin
=
this
.
pinnedOffset
=
null
this
.
$element
=
$
(
element
)
this
.
affixed
=
this
.
unpin
=
this
.
pinnedOffset
=
null
this
.
checkPosition
()
}
this
.
checkPosition
()
}
Affix
.
VERSION
=
'
3.1.1
'
Affix
.
VERSION
=
'
3.1.1
'
Affix
.
RESET
=
'
affix affix-top affix-bottom
'
Affix
.
RESET
=
'
affix affix-top affix-bottom
'
Affix
.
DEFAULTS
=
{
offset
:
0
,
target
:
window
}
Affix
.
DEFAULTS
=
{
offset
:
0
,
target
:
window
}
Affix
.
prototype
.
getPinnedOffset
=
function
()
{
if
(
this
.
pinnedOffset
)
return
this
.
pinnedOffset
this
.
$element
.
removeClass
(
Affix
.
RESET
).
addClass
(
'
affix
'
)
var
scrollTop
=
this
.
$target
.
scrollTop
()
var
position
=
this
.
$element
.
offset
()
return
(
this
.
pinnedOffset
=
position
.
top
-
scrollTop
)
}
Affix
.
prototype
.
getPinnedOffset
=
function
()
{
if
(
this
.
pinnedOffset
)
return
this
.
pinnedOffset
this
.
$element
.
removeClass
(
Affix
.
RESET
).
addClass
(
'
affix
'
)
var
scrollTop
=
this
.
$target
.
scrollTop
()
var
position
=
this
.
$element
.
offset
()
return
(
this
.
pinnedOffset
=
position
.
top
-
scrollTop
)
}
Affix
.
prototype
.
checkPositionWithEventLoop
=
function
()
{
setTimeout
(
$
.
proxy
(
this
.
checkPosition
,
this
),
1
)
}
Affix
.
prototype
.
checkPositionWithEventLoop
=
function
()
{
setTimeout
(
$
.
proxy
(
this
.
checkPosition
,
this
),
1
)
}
Affix
.
prototype
.
checkPosition
=
function
()
{
if
(
!
this
.
$element
.
is
(
'
:visible
'
))
return
Affix
.
prototype
.
checkPosition
=
function
()
{
if
(
!
this
.
$element
.
is
(
'
:visible
'
))
return
var
scrollHeight
=
$
(
document
).
height
()
var
scrollTop
=
this
.
$target
.
scrollTop
()
var
position
=
this
.
$element
.
offset
()
var
offset
=
this
.
options
.
offset
var
offsetTop
=
offset
.
top
var
offsetBottom
=
offset
.
bottom
var
scrollHeight
=
$
(
document
).
height
()
var
scrollTop
=
this
.
$target
.
scrollTop
()
var
position
=
this
.
$element
.
offset
()
var
offset
=
this
.
options
.
offset
var
offsetTop
=
offset
.
top
var
offsetBottom
=
offset
.
bottom
if
(
typeof
offset
!=
'
object
'
)
offsetBottom
=
offsetTop
=
offset
if
(
typeof
offsetTop
==
'
function
'
)
offsetTop
=
offset
.
top
(
this
.
$element
)
if
(
typeof
offsetBottom
==
'
function
'
)
offsetBottom
=
offset
.
bottom
(
this
.
$element
)
if
(
typeof
offset
!=
'
object
'
)
offsetBottom
=
offsetTop
=
offset
if
(
typeof
offsetTop
==
'
function
'
)
offsetTop
=
offset
.
top
(
this
.
$element
)
if
(
typeof
offsetBottom
==
'
function
'
)
offsetBottom
=
offset
.
bottom
(
this
.
$element
)
var
affix
=
this
.
unpin
!=
null
&&
(
scrollTop
+
this
.
unpin
<=
position
.
top
)
?
false
:
offsetBottom
!=
null
&&
(
position
.
top
+
this
.
$element
.
height
()
>=
scrollHeight
-
offsetBottom
)
?
'
bottom
'
:
offsetTop
!=
null
&&
(
scrollTop
<=
offsetTop
)
?
'
top
'
:
false
var
affix
=
this
.
unpin
!=
null
&&
(
scrollTop
+
this
.
unpin
<=
position
.
top
)
?
false
:
offsetBottom
!=
null
&&
(
position
.
top
+
this
.
$element
.
height
()
>=
scrollHeight
-
offsetBottom
)
?
'
bottom
'
:
offsetTop
!=
null
&&
(
scrollTop
<=
offsetTop
)
?
'
top
'
:
false
if
(
this
.
affixed
===
affix
)
return
if
(
this
.
unpin
!=
null
)
this
.
$element
.
css
(
'
top
'
,
''
)
if
(
this
.
affixed
===
affix
)
return
if
(
this
.
unpin
!=
null
)
this
.
$element
.
css
(
'
top
'
,
''
)
var
affixType
=
'
affix
'
+
(
affix
?
'
-
'
+
affix
:
''
)
var
e
=
$
.
Event
(
affixType
+
'
.bs.affix
'
)
var
affixType
=
'
affix
'
+
(
affix
?
'
-
'
+
affix
:
''
)
var
e
=
$
.
Event
(
affixType
+
'
.bs.affix
'
)
this
.
$element
.
trigger
(
e
)
this
.
$element
.
trigger
(
e
)
if
(
e
.
isDefaultPrevented
())
return
if
(
e
.
isDefaultPrevented
())
return
this
.
affixed
=
affix
this
.
unpin
=
affix
==
'
bottom
'
?
this
.
getPinnedOffset
()
:
null
this
.
affixed
=
affix
this
.
unpin
=
affix
==
'
bottom
'
?
this
.
getPinnedOffset
()
:
null
this
.
$element
.
removeClass
(
Affix
.
RESET
)
.
addClass
(
affixType
)
.
trigger
(
$
.
Event
(
affixType
.
replace
(
'
affix
'
,
'
affixed
'
)))
this
.
$element
.
removeClass
(
Affix
.
RESET
)
.
addClass
(
affixType
)
.
trigger
(
$
.
Event
(
affixType
.
replace
(
'
affix
'
,
'
affixed
'
)))
if
(
affix
==
'
bottom
'
)
{
this
.
$element
.
offset
({
top
:
scrollHeight
-
this
.
$element
.
height
()
-
offsetBottom
})
if
(
affix
==
'
bottom
'
)
{
this
.
$element
.
offset
({
top
:
scrollHeight
-
this
.
$element
.
height
()
-
offsetBottom
})
}
}
}
// AFFIX PLUGIN DEFINITION
// =======================
// AFFIX PLUGIN DEFINITION
// =======================
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.affix
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.affix
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
bs.affix
'
,
(
data
=
new
Affix
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
if
(
!
data
)
$this
.
data
(
'
bs.affix
'
,
(
data
=
new
Affix
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
var
old
=
$
.
fn
.
affix
var
old
=
$
.
fn
.
affix
$
.
fn
.
affix
=
Plugin
$
.
fn
.
affix
.
Constructor
=
Affix
$
.
fn
.
affix
=
Plugin
$
.
fn
.
affix
.
Constructor
=
Affix
// AFFIX NO CONFLICT
// =================
// AFFIX NO CONFLICT
// =================
$
.
fn
.
affix
.
noConflict
=
function
()
{
$
.
fn
.
affix
=
old
return
this
}
$
.
fn
.
affix
.
noConflict
=
function
()
{
$
.
fn
.
affix
=
old
return
this
}
// AFFIX DATA-API
// ==============
// AFFIX DATA-API
// ==============
$
(
window
).
on
(
'
load
'
,
function
()
{
$
(
'
[data-spy="affix"]
'
).
each
(
function
()
{
var
$spy
=
$
(
this
)
var
data
=
$spy
.
data
()
$
(
window
).
on
(
'
load
'
,
function
()
{
$
(
'
[data-spy="affix"]
'
).
each
(
function
()
{
var
$spy
=
$
(
this
)
var
data
=
$spy
.
data
()
data
.
offset
=
data
.
offset
||
{}
data
.
offset
=
data
.
offset
||
{}
if
(
data
.
offsetBottom
)
data
.
offset
.
bottom
=
data
.
offsetBottom
if
(
data
.
offsetTop
)
data
.
offset
.
top
=
data
.
offsetTop
if
(
data
.
offsetBottom
)
data
.
offset
.
bottom
=
data
.
offsetBottom
if
(
data
.
offsetTop
)
data
.
offset
.
top
=
data
.
offsetTop
Plugin
.
call
(
$spy
,
data
)
Plugin
.
call
(
$spy
,
data
)
})
})
})
});
}
(
);
This diff is collapsed.
Click to expand it.
js/alert.js
+
61
-
59
View file @
2b302f69
...
...
@@ -7,90 +7,92 @@
* ======================================================================== */
(
function
(
o_o
)
{
typeof
define
===
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
===
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
+
function
()
{
'
use strict
'
;
'
use strict
'
;
(
function
(
o_o
)
{
typeof
define
==
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
==
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
// ALERT CLASS DEFINITION
// ======================
// ALERT CLASS DEFINITION
// ======================
var
dismiss
=
'
[data-dismiss="alert"]
'
var
Alert
=
function
(
el
)
{
$
(
el
).
on
(
'
click
'
,
dismiss
,
this
.
close
)
}
var
dismiss
=
'
[data-dismiss="alert"]
'
var
Alert
=
function
(
el
)
{
$
(
el
).
on
(
'
click
'
,
dismiss
,
this
.
close
)
}
Alert
.
VERSION
=
'
3.1.1
'
Alert
.
VERSION
=
'
3.1.1
'
Alert
.
prototype
.
close
=
function
(
e
)
{
var
$this
=
$
(
this
)
var
selector
=
$this
.
attr
(
'
data-target
'
)
Alert
.
prototype
.
close
=
function
(
e
)
{
var
$this
=
$
(
this
)
var
selector
=
$this
.
attr
(
'
data-target
'
)
if
(
!
selector
)
{
selector
=
$this
.
attr
(
'
href
'
)
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
''
)
// strip for ie7
}
if
(
!
selector
)
{
selector
=
$this
.
attr
(
'
href
'
)
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
''
)
// strip for ie7
}
var
$parent
=
$
(
selector
)
var
$parent
=
$
(
selector
)
if
(
e
)
e
.
preventDefault
()
if
(
e
)
e
.
preventDefault
()
if
(
!
$parent
.
length
)
{
$parent
=
$this
.
hasClass
(
'
alert
'
)
?
$this
:
$this
.
parent
()
}
if
(
!
$parent
.
length
)
{
$parent
=
$this
.
hasClass
(
'
alert
'
)
?
$this
:
$this
.
parent
()
}
$parent
.
trigger
(
e
=
$
.
Event
(
'
close.bs.alert
'
))
$parent
.
trigger
(
e
=
$
.
Event
(
'
close.bs.alert
'
))
if
(
e
.
isDefaultPrevented
())
return
if
(
e
.
isDefaultPrevented
())
return
$parent
.
removeClass
(
'
in
'
)
$parent
.
removeClass
(
'
in
'
)
function
removeElement
()
{
// detach from parent, fire event then clean up data
$parent
.
detach
().
trigger
(
'
closed.bs.alert
'
).
remove
()
function
removeElement
()
{
// detach from parent, fire event then clean up data
$parent
.
detach
().
trigger
(
'
closed.bs.alert
'
).
remove
()
}
$
.
support
.
transition
&&
$parent
.
hasClass
(
'
fade
'
)
?
$parent
.
one
(
'
bsTransitionEnd
'
,
removeElement
)
.
emulateTransitionEnd
(
150
)
:
removeElement
()
}
$
.
support
.
transition
&&
$parent
.
hasClass
(
'
fade
'
)
?
$parent
.
one
(
'
bsTransitionEnd
'
,
removeElement
)
.
emulateTransitionEnd
(
150
)
:
removeElement
()
}
// ALERT PLUGIN DEFINITION
// =======================
// ALERT PLUGIN DEFINITION
// =======================
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.alert
'
)
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.alert
'
)
if
(
!
data
)
$this
.
data
(
'
bs.alert
'
,
(
data
=
new
Alert
(
this
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
].
call
(
$this
)
}
)
}
if
(
!
data
)
$this
.
data
(
'
bs.alert
'
,
(
data
=
new
Alert
(
this
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
].
call
(
$this
)
})
}
var
old
=
$
.
fn
.
alert
var
old
=
$
.
fn
.
alert
$
.
fn
.
alert
=
Plugin
$
.
fn
.
alert
.
Constructor
=
Alert
$
.
fn
.
alert
=
Plugin
$
.
fn
.
alert
.
Constructor
=
Alert
// ALERT NO CONFLICT
// =================
// ALERT NO CONFLICT
// =================
$
.
fn
.
alert
.
noConflict
=
function
()
{
$
.
fn
.
alert
=
old
return
this
}
$
.
fn
.
alert
.
noConflict
=
function
()
{
$
.
fn
.
alert
=
old
return
this
}
// ALERT DATA-API
// ==============
// ALERT DATA-API
// ==============
$
(
document
).
on
(
'
click.bs.alert.data-api
'
,
dismiss
,
Alert
.
prototype
.
close
)
$
(
document
).
on
(
'
click.bs.alert.data-api
'
,
dismiss
,
Alert
.
prototype
.
close
)
}
)
});
}
(
);
This diff is collapsed.
Click to expand it.
js/button.js
+
79
-
77
View file @
2b302f69
...
...
@@ -7,108 +7,110 @@
* ======================================================================== */
(
function
(
o_o
)
{
typeof
define
===
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
===
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
+
function
()
{
'
use strict
'
;
'
use strict
'
;
(
function
(
o_o
)
{
typeof
define
==
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
==
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
// BUTTON PUBLIC CLASS DEFINITION
// ==============================
// BUTTON PUBLIC CLASS DEFINITION
// ==============================
var
Button
=
function
(
element
,
options
)
{
this
.
$element
=
$
(
element
)
this
.
options
=
$
.
extend
({},
Button
.
DEFAULTS
,
options
)
this
.
isLoading
=
false
}
var
Button
=
function
(
element
,
options
)
{
this
.
$element
=
$
(
element
)
this
.
options
=
$
.
extend
({},
Button
.
DEFAULTS
,
options
)
this
.
isLoading
=
false
}
Button
.
VERSION
=
'
3.1.1
'
Button
.
VERSION
=
'
3.1.1
'
Button
.
DEFAULTS
=
{
loadingText
:
'
loading...
'
}
Button
.
DEFAULTS
=
{
loadingText
:
'
loading...
'
}
Button
.
prototype
.
setState
=
function
(
state
)
{
var
d
=
'
disabled
'
var
$el
=
this
.
$element
var
val
=
$el
.
is
(
'
input
'
)
?
'
val
'
:
'
html
'
var
data
=
$el
.
data
()
Button
.
prototype
.
setState
=
function
(
state
)
{
var
d
=
'
disabled
'
var
$el
=
this
.
$element
var
val
=
$el
.
is
(
'
input
'
)
?
'
val
'
:
'
html
'
var
data
=
$el
.
data
()
state
=
state
+
'
Text
'
state
=
state
+
'
Text
'
if
(
data
.
resetText
==
null
)
$el
.
data
(
'
resetText
'
,
$el
[
val
]())
if
(
data
.
resetText
==
null
)
$el
.
data
(
'
resetText
'
,
$el
[
val
]())
$el
[
val
](
data
[
state
]
==
null
?
this
.
options
[
state
]
:
data
[
state
])
$el
[
val
](
data
[
state
]
==
null
?
this
.
options
[
state
]
:
data
[
state
])
// push to event loop to allow forms to submit
setTimeout
(
$
.
proxy
(
function
()
{
if
(
state
==
'
loadingText
'
)
{
this
.
isLoading
=
true
$el
.
addClass
(
d
).
attr
(
d
,
d
)
}
else
if
(
this
.
isLoading
)
{
this
.
isLoading
=
false
$el
.
removeClass
(
d
).
removeAttr
(
d
)
}
},
this
),
0
)
}
Button
.
prototype
.
toggle
=
function
()
{
var
changed
=
true
var
$parent
=
this
.
$element
.
closest
(
'
[data-toggle="buttons"]
'
)
if
(
$parent
.
length
)
{
var
$input
=
this
.
$element
.
find
(
'
input
'
)
if
(
$input
.
prop
(
'
type
'
)
==
'
radio
'
)
{
if
(
$input
.
prop
(
'
checked
'
)
&&
this
.
$element
.
hasClass
(
'
active
'
))
changed
=
false
else
$parent
.
find
(
'
.active
'
).
removeClass
(
'
active
'
)
// push to event loop to allow forms to submit
setTimeout
(
$
.
proxy
(
function
()
{
if
(
state
==
'
loadingText
'
)
{
this
.
isLoading
=
true
$el
.
addClass
(
d
).
attr
(
d
,
d
)
}
else
if
(
this
.
isLoading
)
{
this
.
isLoading
=
false
$el
.
removeClass
(
d
).
removeAttr
(
d
)
}
},
this
),
0
)
}
Button
.
prototype
.
toggle
=
function
()
{
var
changed
=
true
var
$parent
=
this
.
$element
.
closest
(
'
[data-toggle="buttons"]
'
)
if
(
$parent
.
length
)
{
var
$input
=
this
.
$element
.
find
(
'
input
'
)
if
(
$input
.
prop
(
'
type
'
)
==
'
radio
'
)
{
if
(
$input
.
prop
(
'
checked
'
)
&&
this
.
$element
.
hasClass
(
'
active
'
))
changed
=
false
else
$parent
.
find
(
'
.active
'
).
removeClass
(
'
active
'
)
}
if
(
changed
)
$input
.
prop
(
'
checked
'
,
!
this
.
$element
.
hasClass
(
'
active
'
)).
trigger
(
'
change
'
)
}
if
(
changed
)
$input
.
prop
(
'
checked
'
,
!
this
.
$element
.
hasClass
(
'
active
'
)).
trigger
(
'
change
'
)
if
(
changed
)
this
.
$element
.
toggleClass
(
'
active
'
)
}
if
(
changed
)
this
.
$element
.
toggleClass
(
'
active
'
)
}
// BUTTON PLUGIN DEFINITION
// ========================
// BUTTON PLUGIN DEFINITION
// ========================
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.button
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.button
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
)
$this
.
data
(
'
bs.button
'
,
(
data
=
new
Button
(
this
,
options
)))
if
(
!
data
)
$this
.
data
(
'
bs.button
'
,
(
data
=
new
Button
(
this
,
options
)))
if
(
option
==
'
toggle
'
)
data
.
toggle
()
else
if
(
option
)
data
.
setState
(
option
)
})
}
if
(
option
==
'
toggle
'
)
data
.
toggle
()
else
if
(
option
)
data
.
setState
(
option
)
})
}
var
old
=
$
.
fn
.
button
var
old
=
$
.
fn
.
button
$
.
fn
.
button
=
Plugin
$
.
fn
.
button
.
Constructor
=
Button
$
.
fn
.
button
=
Plugin
$
.
fn
.
button
.
Constructor
=
Button
// BUTTON NO CONFLICT
// ==================
// BUTTON NO CONFLICT
// ==================
$
.
fn
.
button
.
noConflict
=
function
()
{
$
.
fn
.
button
=
old
return
this
}
$
.
fn
.
button
.
noConflict
=
function
()
{
$
.
fn
.
button
=
old
return
this
}
// BUTTON DATA-API
// ===============
// BUTTON DATA-API
// ===============
$
(
document
).
on
(
'
click.bs.button.data-api
'
,
'
[data-toggle^="button"]
'
,
function
(
e
)
{
var
$btn
=
$
(
e
.
target
)
if
(
!
$btn
.
hasClass
(
'
btn
'
))
$btn
=
$btn
.
closest
(
'
.btn
'
)
Plugin
.
call
(
$btn
,
'
toggle
'
)
e
.
preventDefault
()
})
$
(
document
).
on
(
'
click.bs.button.data-api
'
,
'
[data-toggle^="button"]
'
,
function
(
e
)
{
var
$btn
=
$
(
e
.
target
)
if
(
!
$btn
.
hasClass
(
'
btn
'
))
$btn
=
$btn
.
closest
(
'
.btn
'
)
Plugin
.
call
(
$btn
,
'
toggle
'
)
e
.
preventDefault
()
})
});
}
(
);
This diff is collapsed.
Click to expand it.
js/carousel.js
+
175
-
173
View file @
2b302f69
...
...
@@ -7,220 +7,222 @@
* ======================================================================== */
(
function
(
o_o
)
{
typeof
define
===
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
===
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
'
use strict
'
;
// CAROUSEL CLASS DEFINITION
// =========================
var
Carousel
=
function
(
element
,
options
)
{
this
.
$element
=
$
(
element
).
on
(
'
keydown.bs.carousel
'
,
$
.
proxy
(
this
.
keydown
,
this
))
this
.
$indicators
=
this
.
$element
.
find
(
'
.carousel-indicators
'
)
this
.
options
=
options
this
.
paused
=
this
.
sliding
=
this
.
interval
=
this
.
$active
=
this
.
$items
=
null
this
.
options
.
pause
==
'
hover
'
&&
this
.
$element
.
on
(
'
mouseenter.bs.carousel
'
,
$
.
proxy
(
this
.
pause
,
this
))
.
on
(
'
mouseleave.bs.carousel
'
,
$
.
proxy
(
this
.
cycle
,
this
))
}
Carousel
.
VERSION
=
'
3.1.1
'
Carousel
.
DEFAULTS
=
{
interval
:
5000
,
pause
:
'
hover
'
,
wrap
:
true
}
Carousel
.
prototype
.
keydown
=
function
(
e
)
{
switch
(
e
.
which
)
{
case
37
:
this
.
prev
();
break
case
39
:
this
.
next
();
break
default
:
return
+
function
()
{
'
use strict
'
;
(
function
(
o_o
)
{
typeof
define
==
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
==
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
// CAROUSEL CLASS DEFINITION
// =========================
var
Carousel
=
function
(
element
,
options
)
{
this
.
$element
=
$
(
element
).
on
(
'
keydown.bs.carousel
'
,
$
.
proxy
(
this
.
keydown
,
this
))
this
.
$indicators
=
this
.
$element
.
find
(
'
.carousel-indicators
'
)
this
.
options
=
options
this
.
paused
=
this
.
sliding
=
this
.
interval
=
this
.
$active
=
this
.
$items
=
null
this
.
options
.
pause
==
'
hover
'
&&
this
.
$element
.
on
(
'
mouseenter.bs.carousel
'
,
$
.
proxy
(
this
.
pause
,
this
))
.
on
(
'
mouseleave.bs.carousel
'
,
$
.
proxy
(
this
.
cycle
,
this
))
}
e
.
preventDefault
()
}
Carousel
.
VERSION
=
'
3.1.1
'
Carousel
.
prototype
.
cycle
=
function
(
e
)
{
e
||
(
this
.
paused
=
false
)
this
.
interval
&&
clearInterval
(
this
.
interval
)
this
.
options
.
interval
&&
!
this
.
paused
&&
(
this
.
interval
=
setInterval
(
$
.
proxy
(
this
.
next
,
this
),
this
.
options
.
interval
))
return
this
}
Carousel
.
prototype
.
getItemIndex
=
function
(
item
)
{
this
.
$items
=
item
.
parent
().
children
(
'
.item
'
)
return
this
.
$items
.
index
(
item
||
this
.
$active
)
}
Carousel
.
DEFAULTS
=
{
interval
:
5000
,
pause
:
'
hover
'
,
wrap
:
true
}
Carousel
.
prototype
.
to
=
function
(
pos
)
{
var
that
=
this
var
activeIndex
=
this
.
getItemIndex
(
this
.
$active
=
this
.
$element
.
find
(
'
.item.active
'
))
Carousel
.
prototype
.
keydown
=
function
(
e
)
{
switch
(
e
.
which
)
{
case
37
:
this
.
prev
();
break
case
39
:
this
.
next
();
break
default
:
return
}
if
(
pos
>
(
this
.
$items
.
length
-
1
)
||
pos
<
0
)
return
e
.
preventDefault
()
}
if
(
this
.
sliding
)
return
this
.
$element
.
one
(
'
slid.bs.carousel
'
,
function
()
{
that
.
to
(
pos
)
})
// yes, "slid"
if
(
activeIndex
==
pos
)
return
this
.
pause
().
cycle
(
)
Carousel
.
prototype
.
cycle
=
function
(
e
)
{
e
||
(
this
.
pause
d
=
false
)
return
this
.
slide
(
pos
>
activeIndex
?
'
next
'
:
'
prev
'
,
$
(
this
.
$items
[
pos
]))
}
this
.
interval
&&
clearInterval
(
this
.
interval
)
Carousel
.
prototype
.
pause
=
function
(
e
)
{
e
||
(
this
.
paused
=
true
)
this
.
options
.
interval
&&
!
this
.
paused
&&
(
this
.
interval
=
setInterval
(
$
.
proxy
(
this
.
next
,
this
),
this
.
options
.
interval
))
if
(
this
.
$element
.
find
(
'
.next, .prev
'
).
length
&&
$
.
support
.
transition
)
{
this
.
$element
.
trigger
(
$
.
support
.
transition
.
end
)
this
.
cycle
(
true
)
return
this
}
this
.
interval
=
clearInterval
(
this
.
interval
)
return
this
}
Carousel
.
prototype
.
getItemIndex
=
function
(
item
)
{
this
.
$items
=
item
.
parent
().
children
(
'
.item
'
)
return
this
.
$items
.
index
(
item
||
this
.
$active
)
}
Carousel
.
prototype
.
next
=
function
()
{
if
(
this
.
sliding
)
return
return
this
.
slide
(
'
next
'
)
}
Carousel
.
prototype
.
to
=
function
(
pos
)
{
var
that
=
this
var
activeIndex
=
this
.
getItemIndex
(
this
.
$active
=
this
.
$element
.
find
(
'
.item.active
'
))
Carousel
.
prototype
.
prev
=
function
()
{
if
(
this
.
sliding
)
return
return
this
.
slide
(
'
prev
'
)
}
if
(
pos
>
(
this
.
$items
.
length
-
1
)
||
pos
<
0
)
return
Carousel
.
prototype
.
slide
=
function
(
type
,
next
)
{
var
$active
=
this
.
$element
.
find
(
'
.item.active
'
)
var
$next
=
next
||
$active
[
type
]()
var
isCycling
=
this
.
interval
var
direction
=
type
==
'
next
'
?
'
left
'
:
'
right
'
var
fallback
=
type
==
'
next
'
?
'
first
'
:
'
last
'
var
that
=
this
if
(
this
.
sliding
)
return
this
.
$element
.
one
(
'
slid.bs.carousel
'
,
function
()
{
that
.
to
(
pos
)
})
// yes, "slid"
if
(
activeIndex
==
pos
)
return
this
.
pause
().
cycle
()
if
(
!
$next
.
length
)
{
if
(
!
this
.
options
.
wrap
)
return
$next
=
this
.
$element
.
find
(
'
.item
'
)[
fallback
]()
return
this
.
slide
(
pos
>
activeIndex
?
'
next
'
:
'
prev
'
,
$
(
this
.
$items
[
pos
]))
}
if
(
$next
.
hasClass
(
'
active
'
))
return
(
this
.
sliding
=
false
)
Carousel
.
prototype
.
pause
=
function
(
e
)
{
e
||
(
this
.
paused
=
true
)
var
relatedTarget
=
$next
[
0
]
var
slideEvent
=
$
.
Event
(
'
slide.bs.carousel
'
,
{
relatedTarget
:
relatedTarget
,
direction
:
direction
})
this
.
$element
.
trigger
(
slideEvent
)
if
(
slideEvent
.
isDefaultPrevented
())
return
if
(
this
.
$element
.
find
(
'
.next, .prev
'
).
length
&&
$
.
support
.
transition
)
{
this
.
$element
.
trigger
(
$
.
support
.
transition
.
end
)
this
.
cycle
(
true
)
}
this
.
sliding
=
true
this
.
interval
=
clearInterval
(
this
.
interval
)
isCycling
&&
this
.
pause
()
return
this
}
if
(
this
.
$indicators
.
length
)
{
this
.
$indicators
.
find
(
'
.active
'
).
removeClass
(
'
active
'
)
var
$nextIndicator
=
$
(
this
.
$indicators
.
children
()[
this
.
getItemIndex
(
$next
)])
$nextIndicator
&&
$nextIndicator
.
addClass
(
'
active
'
)
Carousel
.
prototype
.
next
=
function
()
{
if
(
this
.
sliding
)
return
return
this
.
slide
(
'
next
'
)
}
var
slidEvent
=
$
.
Event
(
'
slid.bs.carousel
'
,
{
relatedTarget
:
relatedTarget
,
direction
:
direction
})
// yes, "slid"
if
(
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
slide
'
))
{
$next
.
addClass
(
type
)
$next
[
0
].
offsetWidth
// force reflow
$active
.
addClass
(
direction
)
$next
.
addClass
(
direction
)
$active
.
one
(
'
bsTransitionEnd
'
,
function
()
{
$next
.
removeClass
([
type
,
direction
].
join
(
'
'
)).
addClass
(
'
active
'
)
$active
.
removeClass
([
'
active
'
,
direction
].
join
(
'
'
))
that
.
sliding
=
false
setTimeout
(
function
()
{
that
.
$element
.
trigger
(
slidEvent
)
},
0
)
})
.
emulateTransitionEnd
(
$active
.
css
(
'
transition-duration
'
).
slice
(
0
,
-
1
)
*
1000
)
}
else
{
$active
.
removeClass
(
'
active
'
)
$next
.
addClass
(
'
active
'
)
this
.
sliding
=
false
this
.
$element
.
trigger
(
slidEvent
)
Carousel
.
prototype
.
prev
=
function
()
{
if
(
this
.
sliding
)
return
return
this
.
slide
(
'
prev
'
)
}
isCycling
&&
this
.
cycle
()
Carousel
.
prototype
.
slide
=
function
(
type
,
next
)
{
var
$active
=
this
.
$element
.
find
(
'
.item.active
'
)
var
$next
=
next
||
$active
[
type
]()
var
isCycling
=
this
.
interval
var
direction
=
type
==
'
next
'
?
'
left
'
:
'
right
'
var
fallback
=
type
==
'
next
'
?
'
first
'
:
'
last
'
var
that
=
this
if
(
!
$next
.
length
)
{
if
(
!
this
.
options
.
wrap
)
return
$next
=
this
.
$element
.
find
(
'
.item
'
)[
fallback
]()
}
if
(
$next
.
hasClass
(
'
active
'
))
return
(
this
.
sliding
=
false
)
var
relatedTarget
=
$next
[
0
]
var
slideEvent
=
$
.
Event
(
'
slide.bs.carousel
'
,
{
relatedTarget
:
relatedTarget
,
direction
:
direction
})
this
.
$element
.
trigger
(
slideEvent
)
if
(
slideEvent
.
isDefaultPrevented
())
return
this
.
sliding
=
true
isCycling
&&
this
.
pause
()
if
(
this
.
$indicators
.
length
)
{
this
.
$indicators
.
find
(
'
.active
'
).
removeClass
(
'
active
'
)
var
$nextIndicator
=
$
(
this
.
$indicators
.
children
()[
this
.
getItemIndex
(
$next
)])
$nextIndicator
&&
$nextIndicator
.
addClass
(
'
active
'
)
}
var
slidEvent
=
$
.
Event
(
'
slid.bs.carousel
'
,
{
relatedTarget
:
relatedTarget
,
direction
:
direction
})
// yes, "slid"
if
(
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
slide
'
))
{
$next
.
addClass
(
type
)
$next
[
0
].
offsetWidth
// force reflow
$active
.
addClass
(
direction
)
$next
.
addClass
(
direction
)
$active
.
one
(
'
bsTransitionEnd
'
,
function
()
{
$next
.
removeClass
([
type
,
direction
].
join
(
'
'
)).
addClass
(
'
active
'
)
$active
.
removeClass
([
'
active
'
,
direction
].
join
(
'
'
))
that
.
sliding
=
false
setTimeout
(
function
()
{
that
.
$element
.
trigger
(
slidEvent
)
},
0
)
})
.
emulateTransitionEnd
(
$active
.
css
(
'
transition-duration
'
).
slice
(
0
,
-
1
)
*
1000
)
}
else
{
$active
.
removeClass
(
'
active
'
)
$next
.
addClass
(
'
active
'
)
this
.
sliding
=
false
this
.
$element
.
trigger
(
slidEvent
)
}
isCycling
&&
this
.
cycle
()
return
this
}
return
this
}
// CAROUSEL PLUGIN DEFINITION
// ==========================
// CAROUSEL PLUGIN DEFINITION
// ==========================
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.carousel
'
)
var
options
=
$
.
extend
({},
Carousel
.
DEFAULTS
,
$this
.
data
(),
typeof
option
==
'
object
'
&&
option
)
var
action
=
typeof
option
==
'
string
'
?
option
:
options
.
slide
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.carousel
'
)
var
options
=
$
.
extend
({},
Carousel
.
DEFAULTS
,
$this
.
data
(),
typeof
option
==
'
object
'
&&
option
)
var
action
=
typeof
option
==
'
string
'
?
option
:
options
.
slide
if
(
!
data
)
$this
.
data
(
'
bs.carousel
'
,
(
data
=
new
Carousel
(
this
,
options
)))
if
(
typeof
option
==
'
number
'
)
data
.
to
(
option
)
else
if
(
action
)
data
[
action
]()
else
if
(
options
.
interval
)
data
.
pause
().
cycle
()
})
}
if
(
!
data
)
$this
.
data
(
'
bs.carousel
'
,
(
data
=
new
Carousel
(
this
,
options
)))
if
(
typeof
option
==
'
number
'
)
data
.
to
(
option
)
else
if
(
action
)
data
[
action
]()
else
if
(
options
.
interval
)
data
.
pause
().
cycle
()
})
}
var
old
=
$
.
fn
.
carousel
var
old
=
$
.
fn
.
carousel
$
.
fn
.
carousel
=
Plugin
$
.
fn
.
carousel
.
Constructor
=
Carousel
$
.
fn
.
carousel
=
Plugin
$
.
fn
.
carousel
.
Constructor
=
Carousel
// CAROUSEL NO CONFLICT
// ====================
// CAROUSEL NO CONFLICT
// ====================
$
.
fn
.
carousel
.
noConflict
=
function
()
{
$
.
fn
.
carousel
=
old
return
this
}
$
.
fn
.
carousel
.
noConflict
=
function
()
{
$
.
fn
.
carousel
=
old
return
this
}
// CAROUSEL DATA-API
// =================
// CAROUSEL DATA-API
// =================
$
(
document
).
on
(
'
click.bs.carousel.data-api
'
,
'
[data-slide], [data-slide-to]
'
,
function
(
e
)
{
var
href
var
$this
=
$
(
this
)
var
$target
=
$
(
$this
.
attr
(
'
data-target
'
)
||
(
href
=
$this
.
attr
(
'
href
'
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
))
//strip for ie7
var
options
=
$
.
extend
({},
$target
.
data
(),
$this
.
data
())
var
slideIndex
=
$this
.
attr
(
'
data-slide-to
'
)
if
(
slideIndex
)
options
.
interval
=
false
$
(
document
).
on
(
'
click.bs.carousel.data-api
'
,
'
[data-slide], [data-slide-to]
'
,
function
(
e
)
{
var
href
var
$this
=
$
(
this
)
var
$target
=
$
(
$this
.
attr
(
'
data-target
'
)
||
(
href
=
$this
.
attr
(
'
href
'
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
))
//strip for ie7
var
options
=
$
.
extend
({},
$target
.
data
(),
$this
.
data
())
var
slideIndex
=
$this
.
attr
(
'
data-slide-to
'
)
if
(
slideIndex
)
options
.
interval
=
false
Plugin
.
call
(
$target
,
options
)
Plugin
.
call
(
$target
,
options
)
if
(
slideIndex
)
{
$target
.
data
(
'
bs.carousel
'
).
to
(
slideIndex
)
}
if
(
slideIndex
)
{
$target
.
data
(
'
bs.carousel
'
).
to
(
slideIndex
)
}
e
.
preventDefault
()
})
e
.
preventDefault
()
})
$
(
window
).
on
(
'
load
'
,
function
()
{
$
(
'
[data-ride="carousel"]
'
).
each
(
function
()
{
var
$carousel
=
$
(
this
)
Plugin
.
call
(
$carousel
,
$carousel
.
data
())
$
(
window
).
on
(
'
load
'
,
function
()
{
$
(
'
[data-ride="carousel"]
'
).
each
(
function
()
{
var
$carousel
=
$
(
this
)
Plugin
.
call
(
$carousel
,
$carousel
.
data
())
})
})
})
});
}
(
);
This diff is collapsed.
Click to expand it.
js/collapse.js
+
123
-
121
View file @
2b302f69
...
...
@@ -7,168 +7,170 @@
* ======================================================================== */
(
function
(
o_o
)
{
typeof
define
===
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
===
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
+
function
()
{
'
use strict
'
;
'
use strict
'
;
(
function
(
o_o
)
{
typeof
define
==
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
==
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
// COLLAPSE PUBLIC CLASS DEFINITION
// ================================
// COLLAPSE PUBLIC CLASS DEFINITION
// ================================
var
Collapse
=
function
(
element
,
options
)
{
this
.
$element
=
$
(
element
)
this
.
options
=
$
.
extend
({},
Collapse
.
DEFAULTS
,
options
)
this
.
transitioning
=
null
var
Collapse
=
function
(
element
,
options
)
{
this
.
$element
=
$
(
element
)
this
.
options
=
$
.
extend
({},
Collapse
.
DEFAULTS
,
options
)
this
.
transitioning
=
null
if
(
this
.
options
.
parent
)
this
.
$parent
=
$
(
this
.
options
.
parent
)
if
(
this
.
options
.
toggle
)
this
.
toggle
()
}
Collapse
.
VERSION
=
'
3.1.1
'
Collapse
.
DEFAULTS
=
{
toggle
:
true
}
if
(
this
.
options
.
parent
)
this
.
$parent
=
$
(
this
.
options
.
parent
)
if
(
this
.
options
.
toggle
)
this
.
toggle
()
}
Collapse
.
prototype
.
dimension
=
function
()
{
var
hasWidth
=
this
.
$element
.
hasClass
(
'
width
'
)
return
hasWidth
?
'
width
'
:
'
height
'
}
Collapse
.
VERSION
=
'
3.1.1
'
Collapse
.
prototype
.
show
=
function
()
{
if
(
this
.
transitioning
||
this
.
$element
.
hasClass
(
'
in
'
))
return
Collapse
.
DEFAULTS
=
{
toggle
:
true
}
var
startEvent
=
$
.
Event
(
'
show.bs.collapse
'
)
this
.
$element
.
trigger
(
startEvent
)
if
(
startEvent
.
isDefaultPrevented
())
return
Collapse
.
prototype
.
dimension
=
function
()
{
var
hasWidth
=
this
.
$element
.
hasClass
(
'
width
'
)
return
hasWidth
?
'
width
'
:
'
height
'
}
var
actives
=
this
.
$parent
&&
this
.
$parent
.
find
(
'
> .panel > .in
'
)
Collapse
.
prototype
.
show
=
function
()
{
if
(
this
.
transitioning
||
this
.
$element
.
hasClass
(
'
in
'
))
return
if
(
actives
&&
actives
.
length
)
{
var
hasData
=
actives
.
data
(
'
bs.collapse
'
)
if
(
hasData
&&
hasData
.
transitioning
)
return
Plugin
.
call
(
actives
,
'
hide
'
)
hasData
||
actives
.
data
(
'
bs.collapse
'
,
null
)
}
var
startEvent
=
$
.
Event
(
'
show.bs.collapse
'
)
this
.
$element
.
trigger
(
startEvent
)
if
(
startEvent
.
isDefaultPrevented
())
return
var
dimension
=
this
.
dimension
(
)
var
actives
=
this
.
$parent
&&
this
.
$parent
.
find
(
'
> .panel > .in
'
)
this
.
$element
.
removeClass
(
'
collapse
'
)
.
addClass
(
'
collapsing
'
)[
dimension
](
0
)
if
(
actives
&&
actives
.
length
)
{
var
hasData
=
actives
.
data
(
'
bs.collapse
'
)
if
(
hasData
&&
hasData
.
transitioning
)
return
Plugin
.
call
(
actives
,
'
hide
'
)
hasData
||
actives
.
data
(
'
bs.collapse
'
,
null
)
}
this
.
transitioning
=
1
var
dimension
=
this
.
dimension
()
var
complete
=
function
()
{
this
.
$element
.
removeClass
(
'
collapsing
'
)
.
addClass
(
'
collapse in
'
)[
dimension
](
''
)
this
.
transitioning
=
0
this
.
$element
.
trigger
(
'
shown.bs.collapse
'
)
}
.
removeClass
(
'
collapse
'
)
.
addClass
(
'
collapsing
'
)[
dimension
](
0
)
if
(
!
$
.
support
.
transition
)
return
complete
.
call
(
this
)
this
.
transitioning
=
1
var
scrollSize
=
$
.
camelCase
([
'
scroll
'
,
dimension
].
join
(
'
-
'
))
var
complete
=
function
()
{
this
.
$element
.
removeClass
(
'
collapsing
'
)
.
addClass
(
'
collapse in
'
)[
dimension
](
''
)
this
.
transitioning
=
0
this
.
$element
.
trigger
(
'
shown.bs.collapse
'
)
}
this
.
$element
.
one
(
'
bsTransitionEnd
'
,
$
.
proxy
(
complete
,
this
))
.
emulateTransitionEnd
(
350
)[
dimension
](
this
.
$element
[
0
][
scrollSize
])
}
if
(
!
$
.
support
.
transition
)
return
complete
.
call
(
this
)
Collapse
.
prototype
.
hide
=
function
()
{
if
(
this
.
transitioning
||
!
this
.
$element
.
hasClass
(
'
in
'
))
return
var
scrollSize
=
$
.
camelCase
([
'
scroll
'
,
dimension
].
join
(
'
-
'
))
var
startEvent
=
$
.
Event
(
'
hide.bs.collapse
'
)
this
.
$element
.
trigger
(
startEvent
)
if
(
startEvent
.
isDefaultPrevented
())
return
this
.
$element
.
one
(
'
bsTransitionEnd
'
,
$
.
proxy
(
complete
,
this
))
.
emulateTransitionEnd
(
350
)[
dimension
](
this
.
$element
[
0
][
scrollSize
])
}
var
dimension
=
this
.
dimension
()
Collapse
.
prototype
.
hide
=
function
()
{
if
(
this
.
transitioning
||
!
this
.
$element
.
hasClass
(
'
in
'
))
return
this
.
$element
[
dimension
](
this
.
$element
[
dimension
]())[
0
].
offsetHeight
var
startEvent
=
$
.
Event
(
'
hide.bs.collapse
'
)
this
.
$element
.
trigger
(
startEvent
)
if
(
startEvent
.
isDefaultPrevented
())
return
this
.
$element
.
addClass
(
'
collapsing
'
)
.
removeClass
(
'
collapse
'
)
.
removeClass
(
'
in
'
)
var
dimension
=
this
.
dimension
()
this
.
transitioning
=
1
this
.
$element
[
dimension
](
this
.
$element
[
dimension
]())[
0
].
offsetHeight
var
complete
=
function
()
{
this
.
transitioning
=
0
this
.
$element
.
trigger
(
'
hidden.bs.collapse
'
)
.
removeClass
(
'
collapsing
'
)
.
addClass
(
'
collapse
'
)
}
.
addClass
(
'
collapsing
'
)
.
removeClass
(
'
collapse
'
)
.
removeClass
(
'
in
'
)
if
(
!
$
.
support
.
transition
)
return
complete
.
call
(
this
)
this
.
transitioning
=
1
this
.
$element
[
dimension
](
0
)
.
one
(
'
bsTransitionEnd
'
,
$
.
proxy
(
complete
,
this
))
.
emulateTransitionEnd
(
350
)
}
var
complete
=
function
()
{
this
.
transitioning
=
0
this
.
$element
.
trigger
(
'
hidden.bs.collapse
'
)
.
removeClass
(
'
collapsing
'
)
.
addClass
(
'
collapse
'
)
}
Collapse
.
prototype
.
toggle
=
function
()
{
this
[
this
.
$element
.
hasClass
(
'
in
'
)
?
'
hide
'
:
'
show
'
]()
}
if
(
!
$
.
support
.
transition
)
return
complete
.
call
(
this
)
this
.
$element
[
dimension
](
0
)
.
one
(
'
bsTransitionEnd
'
,
$
.
proxy
(
complete
,
this
))
.
emulateTransitionEnd
(
350
)
}
// COLLAPSE PLUGIN DEFINITION
// ==========================
Collapse
.
prototype
.
toggle
=
function
()
{
this
[
this
.
$element
.
hasClass
(
'
in
'
)
?
'
hide
'
:
'
show
'
]()
}
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.collapse
'
)
var
options
=
$
.
extend
({},
Collapse
.
DEFAULTS
,
$this
.
data
(),
typeof
option
==
'
object
'
&&
option
)
if
(
!
data
&&
options
.
toggle
&&
option
==
'
show
'
)
option
=
!
option
if
(
!
data
)
$this
.
data
(
'
bs.collapse
'
,
(
data
=
new
Collapse
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
// COLLAPSE PLUGIN DEFINITION
// ==========================
var
old
=
$
.
fn
.
collapse
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.collapse
'
)
var
options
=
$
.
extend
({},
Collapse
.
DEFAULTS
,
$this
.
data
(),
typeof
option
==
'
object
'
&&
option
)
$
.
fn
.
collapse
=
Plugin
$
.
fn
.
collapse
.
Constructor
=
Collapse
if
(
!
data
&&
options
.
toggle
&&
option
==
'
show
'
)
option
=
!
option
if
(
!
data
)
$this
.
data
(
'
bs.collapse
'
,
(
data
=
new
Collapse
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
var
old
=
$
.
fn
.
collapse
// COLLAPSE NO CONFLICT
// ====================
$
.
fn
.
collapse
=
Plugin
$
.
fn
.
collapse
.
Constructor
=
Collapse
$
.
fn
.
collapse
.
noConflict
=
function
()
{
$
.
fn
.
collapse
=
old
return
this
}
// COLLAPSE NO CONFLICT
// ====================
// COLLAPSE DATA-API
// =================
$
.
fn
.
collapse
.
noConflict
=
function
()
{
$
.
fn
.
collapse
=
old
return
this
}
$
(
document
).
on
(
'
click.bs.collapse.data-api
'
,
'
[data-toggle="collapse"]
'
,
function
(
e
)
{
var
href
var
$this
=
$
(
this
)
var
target
=
$this
.
attr
(
'
data-target
'
)
||
e
.
preventDefault
()
||
(
href
=
$this
.
attr
(
'
href
'
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
)
//strip for ie7
var
$target
=
$
(
target
)
var
data
=
$target
.
data
(
'
bs.collapse
'
)
var
option
=
data
?
'
toggle
'
:
$this
.
data
()
var
parent
=
$this
.
attr
(
'
data-parent
'
)
var
$parent
=
parent
&&
$
(
parent
)
if
(
!
data
||
!
data
.
transitioning
)
{
if
(
$parent
)
$parent
.
find
(
'
[data-toggle="collapse"][data-parent="
'
+
parent
+
'
"]
'
).
not
(
$this
).
addClass
(
'
collapsed
'
)
$this
[
$target
.
hasClass
(
'
in
'
)
?
'
addClass
'
:
'
removeClass
'
](
'
collapsed
'
)
}
// COLLAPSE DATA-API
// =================
$
(
document
).
on
(
'
click.bs.collapse.data-api
'
,
'
[data-toggle="collapse"]
'
,
function
(
e
)
{
var
href
var
$this
=
$
(
this
)
var
target
=
$this
.
attr
(
'
data-target
'
)
||
e
.
preventDefault
()
||
(
href
=
$this
.
attr
(
'
href
'
))
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
)
//strip for ie7
var
$target
=
$
(
target
)
var
data
=
$target
.
data
(
'
bs.collapse
'
)
var
option
=
data
?
'
toggle
'
:
$this
.
data
()
var
parent
=
$this
.
attr
(
'
data-parent
'
)
var
$parent
=
parent
&&
$
(
parent
)
if
(
!
data
||
!
data
.
transitioning
)
{
if
(
$parent
)
$parent
.
find
(
'
[data-toggle="collapse"][data-parent="
'
+
parent
+
'
"]
'
).
not
(
$this
).
addClass
(
'
collapsed
'
)
$this
[
$target
.
hasClass
(
'
in
'
)
?
'
addClass
'
:
'
removeClass
'
](
'
collapsed
'
)
}
Plugin
.
call
(
$target
,
option
)
})
Plugin
.
call
(
$target
,
option
)
})
});
}
(
);
This diff is collapsed.
Click to expand it.
js/dropdown.js
+
104
-
102
View file @
2b302f69
...
...
@@ -7,149 +7,151 @@
* ======================================================================== */
(
function
(
o_o
)
{
typeof
define
===
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
===
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
+
function
()
{
'
use strict
'
;
'
use strict
'
;
(
function
(
o_o
)
{
typeof
define
==
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
==
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
// DROPDOWN CLASS DEFINITION
// =========================
// DROPDOWN CLASS DEFINITION
// =========================
var
backdrop
=
'
.dropdown-backdrop
'
var
toggle
=
'
[data-toggle="dropdown"]
'
var
Dropdown
=
function
(
element
)
{
$
(
element
).
on
(
'
click.bs.dropdown
'
,
this
.
toggle
)
}
var
backdrop
=
'
.dropdown-backdrop
'
var
toggle
=
'
[data-toggle="dropdown"]
'
var
Dropdown
=
function
(
element
)
{
$
(
element
).
on
(
'
click.bs.dropdown
'
,
this
.
toggle
)
}
Dropdown
.
VERSION
=
'
3.1.1
'
Dropdown
.
VERSION
=
'
3.1.1
'
Dropdown
.
prototype
.
toggle
=
function
(
e
)
{
var
$this
=
$
(
this
)
Dropdown
.
prototype
.
toggle
=
function
(
e
)
{
var
$this
=
$
(
this
)
if
(
$this
.
is
(
'
.disabled, :disabled
'
))
return
if
(
$this
.
is
(
'
.disabled, :disabled
'
))
return
var
$parent
=
getParent
(
$this
)
var
isActive
=
$parent
.
hasClass
(
'
open
'
)
var
$parent
=
getParent
(
$this
)
var
isActive
=
$parent
.
hasClass
(
'
open
'
)
clearMenus
()
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
$
(
'
<div class="dropdown-backdrop"/>
'
).
insertAfter
(
$
(
this
)).
on
(
'
click
'
,
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
$
(
'
<div class="dropdown-backdrop"/>
'
).
insertAfter
(
$
(
this
)).
on
(
'
click
'
,
clearMenus
)
}
var
relatedTarget
=
{
relatedTarget
:
this
}
$parent
.
trigger
(
e
=
$
.
Event
(
'
show.bs.dropdown
'
,
relatedTarget
))
var
relatedTarget
=
{
relatedTarget
:
this
}
$parent
.
trigger
(
e
=
$
.
Event
(
'
show.bs.dropdown
'
,
relatedTarget
))
if
(
e
.
isDefaultPrevented
())
return
if
(
e
.
isDefaultPrevented
())
return
$this
.
trigger
(
'
focus
'
)
$this
.
trigger
(
'
focus
'
)
$parent
.
toggleClass
(
'
open
'
)
.
trigger
(
'
shown.bs.dropdown
'
,
relatedTarget
)
}
$parent
.
toggleClass
(
'
open
'
)
.
trigger
(
'
shown.bs.dropdown
'
,
relatedTarget
)
return
false
}
return
false
}
Dropdown
.
prototype
.
keydown
=
function
(
e
)
{
if
(
!
/
(
38|40|27
)
/
.
test
(
e
.
keyCode
))
return
Dropdown
.
prototype
.
keydown
=
function
(
e
)
{
if
(
!
/
(
38|40|27
)
/
.
test
(
e
.
keyCode
))
return
var
$this
=
$
(
this
)
var
$this
=
$
(
this
)
e
.
preventDefault
()
e
.
stopPropagation
()
e
.
preventDefault
()
e
.
stopPropagation
()
if
(
$this
.
is
(
'
.disabled, :disabled
'
))
return
if
(
$this
.
is
(
'
.disabled, :disabled
'
))
return
var
$parent
=
getParent
(
$this
)
var
isActive
=
$parent
.
hasClass
(
'
open
'
)
var
$parent
=
getParent
(
$this
)
var
isActive
=
$parent
.
hasClass
(
'
open
'
)
if
(
!
isActive
||
(
isActive
&&
e
.
keyCode
==
27
))
{
if
(
e
.
which
==
27
)
$parent
.
find
(
toggle
).
trigger
(
'
focus
'
)
return
$this
.
trigger
(
'
click
'
)
}
if
(
!
isActive
||
(
isActive
&&
e
.
keyCode
==
27
))
{
if
(
e
.
which
==
27
)
$parent
.
find
(
toggle
).
trigger
(
'
focus
'
)
return
$this
.
trigger
(
'
click
'
)
}
var
desc
=
'
li:not(.divider):visible a
'
var
$items
=
$parent
.
find
(
'
[role="menu"]
'
+
desc
+
'
, [role="listbox"]
'
+
desc
)
var
desc
=
'
li:not(.divider):visible a
'
var
$items
=
$parent
.
find
(
'
[role="menu"]
'
+
desc
+
'
, [role="listbox"]
'
+
desc
)
if
(
!
$items
.
length
)
return
if
(
!
$items
.
length
)
return
var
index
=
$items
.
index
(
$items
.
filter
(
'
:focus
'
))
var
index
=
$items
.
index
(
$items
.
filter
(
'
:focus
'
))
if
(
e
.
keyCode
==
38
&&
index
>
0
)
index
--
// up
if
(
e
.
keyCode
==
40
&&
index
<
$items
.
length
-
1
)
index
++
// down
if
(
!~
index
)
index
=
0
if
(
e
.
keyCode
==
38
&&
index
>
0
)
index
--
// up
if
(
e
.
keyCode
==
40
&&
index
<
$items
.
length
-
1
)
index
++
// down
if
(
!~
index
)
index
=
0
$items
.
eq
(
index
).
trigger
(
'
focus
'
)
}
$items
.
eq
(
index
).
trigger
(
'
focus
'
)
}
function
clearMenus
(
e
)
{
if
(
e
&&
e
.
which
===
3
)
return
$
(
backdrop
).
remove
()
$
(
toggle
).
each
(
function
()
{
var
$parent
=
getParent
(
$
(
this
))
var
relatedTarget
=
{
relatedTarget
:
this
}
if
(
!
$parent
.
hasClass
(
'
open
'
))
return
$parent
.
trigger
(
e
=
$
.
Event
(
'
hide.bs.dropdown
'
,
relatedTarget
))
if
(
e
.
isDefaultPrevented
())
return
$parent
.
removeClass
(
'
open
'
).
trigger
(
'
hidden.bs.dropdown
'
,
relatedTarget
)
})
}
function
clearMenus
(
e
)
{
if
(
e
&&
e
.
which
===
3
)
return
$
(
backdrop
).
remove
()
$
(
toggle
).
each
(
function
()
{
var
$parent
=
getParent
(
$
(
this
))
var
relatedTarget
=
{
relatedTarget
:
this
}
if
(
!
$parent
.
hasClass
(
'
open
'
))
return
$parent
.
trigger
(
e
=
$
.
Event
(
'
hide.bs.dropdown
'
,
relatedTarget
))
if
(
e
.
isDefaultPrevented
())
return
$parent
.
removeClass
(
'
open
'
).
trigger
(
'
hidden.bs.dropdown
'
,
relatedTarget
)
})
}
function
getParent
(
$this
)
{
var
selector
=
$this
.
attr
(
'
data-target
'
)
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
}
if
(
!
selector
)
{
selector
=
$this
.
attr
(
'
href
'
)
selector
=
selector
&&
/#
[
A-Za-z
]
/
.
test
(
selector
)
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
''
)
//strip for ie7
}
var
$parent
=
selector
&&
$
(
selector
)
var
$parent
=
selector
&&
$
(
selector
)
return
$parent
&&
$parent
.
length
?
$parent
:
$this
.
parent
()
}
return
$parent
&&
$parent
.
length
?
$parent
:
$this
.
parent
()
}
// DROPDOWN PLUGIN DEFINITION
// ==========================
// DROPDOWN PLUGIN DEFINITION
// ==========================
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.dropdown
'
)
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
)
}
)
}
if
(
!
data
)
$this
.
data
(
'
bs.dropdown
'
,
(
data
=
new
Dropdown
(
this
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
].
call
(
$this
)
})
}
var
old
=
$
.
fn
.
dropdown
var
old
=
$
.
fn
.
dropdown
$
.
fn
.
dropdown
=
Plugin
$
.
fn
.
dropdown
.
Constructor
=
Dropdown
$
.
fn
.
dropdown
=
Plugin
$
.
fn
.
dropdown
.
Constructor
=
Dropdown
// DROPDOWN NO CONFLICT
// ====================
// DROPDOWN NO CONFLICT
// ====================
$
.
fn
.
dropdown
.
noConflict
=
function
()
{
$
.
fn
.
dropdown
=
old
return
this
}
$
.
fn
.
dropdown
.
noConflict
=
function
()
{
$
.
fn
.
dropdown
=
old
return
this
}
// APPLY TO STANDARD DROPDOWN ELEMENTS
// ===================================
// 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
+
'
, [role="menu"], [role="listbox"]
'
,
Dropdown
.
prototype
.
keydown
)
$
(
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
+
'
, [role="menu"], [role="listbox"]
'
,
Dropdown
.
prototype
.
keydown
)
})
});
}
(
);
This diff is collapsed.
Click to expand it.
js/modal.js
+
208
-
206
View file @
2b302f69
...
...
@@ -7,278 +7,280 @@
* ======================================================================== */
(
function
(
o_o
)
{
typeof
define
===
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
===
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
'
use strict
'
;
+
function
()
{
'
use strict
'
;
(
function
(
o_o
)
{
typeof
define
==
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
==
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
// MODAL CLASS DEFINITION
// ======================
var
Modal
=
function
(
element
,
options
)
{
this
.
options
=
options
this
.
$body
=
$
(
document
.
body
)
this
.
$element
=
$
(
element
)
this
.
$backdrop
=
this
.
isShown
=
null
this
.
scrollbarWidth
=
0
if
(
this
.
options
.
remote
)
{
this
.
$element
.
find
(
'
.modal-content
'
)
.
load
(
this
.
options
.
remote
,
$
.
proxy
(
function
()
{
this
.
$element
.
trigger
(
'
loaded.bs.modal
'
)
},
this
))
}
}
// MODAL CLASS DEFINITION
// ======================
Modal
.
VERSION
=
'
3.1.1
'
var
Modal
=
function
(
element
,
options
)
{
this
.
options
=
options
this
.
$body
=
$
(
document
.
body
)
this
.
$element
=
$
(
element
)
this
.
$backdrop
=
this
.
isShown
=
null
this
.
scrollbarWidth
=
0
Modal
.
DEFAULTS
=
{
backdrop
:
true
,
keyboard
:
true
,
show
:
true
}
if
(
this
.
options
.
remote
)
{
this
.
$element
.
find
(
'
.modal-content
'
)
.
load
(
this
.
options
.
remote
,
$
.
proxy
(
function
()
{
this
.
$element
.
trigger
(
'
loaded.bs.modal
'
)
},
this
))
Modal
.
prototype
.
toggle
=
function
(
_relatedTarget
)
{
return
this
.
isShown
?
this
.
hide
()
:
this
.
show
(
_relatedTarget
)
}
}
Modal
.
VERSION
=
'
3.1.1
'
Modal
.
prototype
.
show
=
function
(
_relatedTarget
)
{
var
that
=
this
var
e
=
$
.
Event
(
'
show.bs.modal
'
,
{
relatedTarget
:
_relatedTarget
})
Modal
.
DEFAULTS
=
{
backdrop
:
true
,
keyboard
:
true
,
show
:
true
}
this
.
$element
.
trigger
(
e
)
Modal
.
prototype
.
toggle
=
function
(
_relatedTarget
)
{
return
this
.
isShown
?
this
.
hide
()
:
this
.
show
(
_relatedTarget
)
}
if
(
this
.
isShown
||
e
.
isDefaultPrevented
())
return
Modal
.
prototype
.
show
=
function
(
_relatedTarget
)
{
var
that
=
this
var
e
=
$
.
Event
(
'
show.bs.modal
'
,
{
relatedTarget
:
_relatedTarget
})
this
.
isShown
=
true
this
.
$element
.
trigger
(
e
)
this
.
checkScrollbar
()
this
.
$body
.
addClass
(
'
modal-open
'
)
if
(
this
.
isShown
||
e
.
isDefaultPrevented
())
return
this
.
setScrollbar
()
this
.
escape
()
this
.
isShown
=
true
this
.
$element
.
on
(
'
click.dismiss.bs.modal
'
,
'
[data-dismiss="modal"]
'
,
$
.
proxy
(
this
.
hide
,
this
))
this
.
checkScrollbar
()
this
.
$body
.
addClass
(
'
modal-open
'
)
this
.
backdrop
(
function
()
{
var
transition
=
$
.
support
.
transition
&&
that
.
$element
.
hasClass
(
'
fade
'
)
this
.
setScrollbar
()
this
.
escape
()
if
(
!
that
.
$element
.
parent
().
length
)
{
that
.
$element
.
appendTo
(
that
.
$body
)
// don't move modals dom position
}
this
.
$element
.
on
(
'
click.dismiss.bs.modal
'
,
'
[data-dismiss="modal"]
'
,
$
.
proxy
(
this
.
hide
,
this
))
that
.
$element
.
show
()
.
scrollTop
(
0
)
this
.
backdrop
(
function
()
{
var
transition
=
$
.
support
.
transition
&&
that
.
$element
.
hasClass
(
'
fade
'
)
if
(
transition
)
{
that
.
$element
[
0
].
offsetWidth
// force reflow
}
if
(
!
that
.
$element
.
parent
().
length
)
{
that
.
$element
.
appendTo
(
that
.
$body
)
// don't move modals dom position
}
that
.
$element
.
addClass
(
'
in
'
)
.
attr
(
'
aria-hidden
'
,
false
)
that
.
$element
.
show
()
.
scrollTop
(
0
)
that
.
enforceFocus
()
if
(
transition
)
{
that
.
$element
[
0
].
offsetWidth
// force reflow
}
var
e
=
$
.
Event
(
'
shown.bs.modal
'
,
{
relatedTarget
:
_relatedTarget
})
that
.
$element
.
addClass
(
'
in
'
)
.
attr
(
'
aria-hidden
'
,
false
)
transition
?
that
.
$element
.
find
(
'
.modal-dialog
'
)
// wait for modal to slide in
.
one
(
'
bsTransitionEnd
'
,
function
()
{
that
.
$element
.
trigger
(
'
focus
'
).
trigger
(
e
)
})
.
emulateTransitionEnd
(
300
)
:
that
.
$element
.
trigger
(
'
focus
'
).
trigger
(
e
)
})
}
that
.
enforceFocus
()
Modal
.
prototype
.
hide
=
function
(
e
)
{
if
(
e
)
e
.
preventDefault
()
var
e
=
$
.
Event
(
'
shown
.bs.modal
'
,
{
relatedTarget
:
_relatedTarget
}
)
e
=
$
.
Event
(
'
hide
.bs.modal
'
)
transition
?
that
.
$element
.
find
(
'
.modal-dialog
'
)
// wait for modal to slide in
.
one
(
'
bsTransitionEnd
'
,
function
()
{
that
.
$element
.
trigger
(
'
focus
'
).
trigger
(
e
)
})
.
emulateTransitionEnd
(
300
)
:
that
.
$element
.
trigger
(
'
focus
'
).
trigger
(
e
)
})
}
this
.
$element
.
trigger
(
e
)
Modal
.
prototype
.
hide
=
function
(
e
)
{
if
(
e
)
e
.
preventDefault
()
if
(
!
this
.
isShown
||
e
.
isDefaultPrevented
())
return
e
=
$
.
Event
(
'
hide.bs.modal
'
)
this
.
isShown
=
false
this
.
$
element
.
trigger
(
e
)
this
.
$
body
.
removeClass
(
'
modal-open
'
)
if
(
!
this
.
isShown
||
e
.
isDefaultPrevented
())
return
this
.
resetScrollbar
()
this
.
escape
()
this
.
isShown
=
false
$
(
document
).
off
(
'
focusin.bs.modal
'
)
this
.
$body
.
removeClass
(
'
modal-open
'
)
this
.
$element
.
removeClass
(
'
in
'
)
.
attr
(
'
aria-hidden
'
,
true
)
.
off
(
'
click.dismiss.bs.modal
'
)
this
.
resetScrollbar
()
this
.
escape
()
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)
?
this
.
$element
.
one
(
'
bsTransitionEnd
'
,
$
.
proxy
(
this
.
hideModal
,
this
))
.
emulateTransitionEnd
(
300
)
:
this
.
hideModal
()
}
$
(
document
).
off
(
'
focusin.bs.modal
'
)
Modal
.
prototype
.
enforceFocus
=
function
()
{
$
(
document
)
.
off
(
'
focusin.bs.modal
'
)
// guard against infinite focus loop
.
on
(
'
focusin.bs.modal
'
,
$
.
proxy
(
function
(
e
)
{
if
(
this
.
$element
[
0
]
!==
e
.
target
&&
!
this
.
$element
.
has
(
e
.
target
).
length
)
{
this
.
$element
.
trigger
(
'
focus
'
)
}
},
this
))
}
this
.
$element
.
removeClass
(
'
in
'
)
.
attr
(
'
aria-hidden
'
,
true
)
.
off
(
'
click.dismiss.bs.modal
'
)
Modal
.
prototype
.
escape
=
function
()
{
if
(
this
.
isShown
&&
this
.
options
.
keyboard
)
{
this
.
$element
.
on
(
'
keyup.dismiss.bs.modal
'
,
$
.
proxy
(
function
(
e
)
{
e
.
which
==
27
&&
this
.
hide
()
},
this
))
}
else
if
(
!
this
.
isShown
)
{
this
.
$element
.
off
(
'
keyup.dismiss.bs.modal
'
)
}
}
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)
?
this
.
$element
.
one
(
'
bsTransitionEnd
'
,
$
.
proxy
(
this
.
hideModal
,
this
))
.
emulateTransitionEnd
(
300
)
:
this
.
hideModal
()
}
Modal
.
prototype
.
enforceFocus
=
function
()
{
$
(
document
)
.
off
(
'
focusin.bs.modal
'
)
// guard against infinite focus loop
.
on
(
'
focusin.bs.modal
'
,
$
.
proxy
(
function
(
e
)
{
if
(
this
.
$element
[
0
]
!==
e
.
target
&&
!
this
.
$element
.
has
(
e
.
target
).
length
)
{
this
.
$element
.
trigger
(
'
focus
'
)
}
},
this
))
}
Modal
.
prototype
.
escape
=
function
()
{
if
(
this
.
isShown
&&
this
.
options
.
keyboard
)
{
this
.
$element
.
on
(
'
keyup.dismiss.bs.modal
'
,
$
.
proxy
(
function
(
e
)
{
e
.
which
==
27
&&
this
.
hide
()
},
this
))
}
else
if
(
!
this
.
isShown
)
{
this
.
$element
.
off
(
'
keyup.dismiss.bs.modal
'
)
Modal
.
prototype
.
hideModal
=
function
()
{
var
that
=
this
this
.
$element
.
hide
()
this
.
backdrop
(
function
()
{
that
.
$element
.
trigger
(
'
hidden.bs.modal
'
)
})
}
}
Modal
.
prototype
.
hideModal
=
function
()
{
var
that
=
this
this
.
$element
.
hide
()
this
.
backdrop
(
function
()
{
that
.
$element
.
trigger
(
'
hidden.bs.modal
'
)
})
}
Modal
.
prototype
.
removeBackdrop
=
function
()
{
this
.
$backdrop
&&
this
.
$backdrop
.
remove
()
this
.
$backdrop
=
null
}
Modal
.
prototype
.
removeBackdrop
=
function
()
{
this
.
$backdrop
&&
this
.
$backdrop
.
remove
()
this
.
$backdrop
=
null
}
Modal
.
prototype
.
backdrop
=
function
(
callback
)
{
var
that
=
this
var
animate
=
this
.
$element
.
hasClass
(
'
fade
'
)
?
'
fade
'
:
''
Modal
.
prototype
.
backdrop
=
function
(
callback
)
{
var
that
=
this
var
animate
=
this
.
$element
.
hasClass
(
'
fade
'
)
?
'
fade
'
:
''
if
(
this
.
isShown
&&
this
.
options
.
backdrop
)
{
var
doAnimate
=
$
.
support
.
transition
&&
animate
if
(
this
.
isShown
&&
this
.
options
.
backdrop
)
{
var
doAnimate
=
$
.
support
.
transition
&&
animate
this
.
$backdrop
=
$
(
'
<div class="modal-backdrop
'
+
animate
+
'
" />
'
)
.
appendTo
(
this
.
$body
)
this
.
$backdrop
=
$
(
'
<div class="modal-backdrop
'
+
animate
+
'
" />
'
)
.
appendTo
(
this
.
$body
)
this
.
$element
.
on
(
'
click.dismiss.bs.modal
'
,
$
.
proxy
(
function
(
e
)
{
if
(
e
.
target
!==
e
.
currentTarget
)
return
this
.
options
.
backdrop
==
'
static
'
?
this
.
$element
[
0
].
focus
.
call
(
this
.
$element
[
0
])
:
this
.
hide
.
call
(
this
)
},
this
))
this
.
$element
.
on
(
'
click.dismiss.bs.modal
'
,
$
.
proxy
(
function
(
e
)
{
if
(
e
.
target
!==
e
.
currentTarget
)
return
this
.
options
.
backdrop
==
'
static
'
?
this
.
$element
[
0
].
focus
.
call
(
this
.
$element
[
0
])
:
this
.
hide
.
call
(
this
)
},
this
))
if
(
doAnimate
)
this
.
$backdrop
[
0
].
offsetWidth
// force reflow
if
(
doAnimate
)
this
.
$backdrop
[
0
].
offsetWidth
// force reflow
this
.
$backdrop
.
addClass
(
'
in
'
)
this
.
$backdrop
.
addClass
(
'
in
'
)
if
(
!
callback
)
return
if
(
!
callback
)
return
doAnimate
?
this
.
$backdrop
.
one
(
'
bsTransitionEnd
'
,
callback
)
.
emulateTransitionEnd
(
150
)
:
callback
()
doAnimate
?
this
.
$backdrop
.
one
(
'
bsTransitionEnd
'
,
callback
)
.
emulateTransitionEnd
(
150
)
:
callback
()
}
else
if
(
!
this
.
isShown
&&
this
.
$backdrop
)
{
this
.
$backdrop
.
removeClass
(
'
in
'
)
}
else
if
(
!
this
.
isShown
&&
this
.
$backdrop
)
{
this
.
$backdrop
.
removeClass
(
'
in
'
)
var
callbackRemove
=
function
()
{
that
.
removeBackdrop
()
callback
&&
callback
()
}
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)
?
this
.
$backdrop
.
one
(
'
bsTransitionEnd
'
,
callbackRemove
)
.
emulateTransitionEnd
(
150
)
:
callbackRemove
()
var
callbackRemove
=
function
()
{
that
.
removeBackdrop
()
callback
&&
callback
()
}
else
if
(
callback
)
{
callback
()
}
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)
?
this
.
$backdrop
.
one
(
'
bsTransitionEnd
'
,
callbackRemove
)
.
emulateTransitionEnd
(
150
)
:
callbackRemove
()
}
else
if
(
callback
)
{
callback
()
}
}
Modal
.
prototype
.
checkScrollbar
=
function
()
{
if
(
document
.
body
.
clientWidth
>=
window
.
innerWidth
)
return
this
.
scrollbarWidth
=
this
.
scrollbarWidth
||
this
.
measureScrollbar
()
}
Modal
.
prototype
.
checkScrollbar
=
function
()
{
if
(
document
.
body
.
clientWidth
>=
window
.
innerWidth
)
return
this
.
scrollbarWidth
=
this
.
scrollbarWidth
||
this
.
measureScrollbar
()
}
Modal
.
prototype
.
setScrollbar
=
function
()
{
var
bodyPad
=
parseInt
((
this
.
$body
.
css
(
'
padding-right
'
)
||
0
),
10
)
if
(
this
.
scrollbarWidth
)
this
.
$body
.
css
(
'
padding-right
'
,
bodyPad
+
this
.
scrollbarWidth
)
}
Modal
.
prototype
.
setScrollbar
=
function
()
{
var
bodyPad
=
parseInt
((
this
.
$body
.
css
(
'
padding-right
'
)
||
0
),
10
)
if
(
this
.
scrollbarWidth
)
this
.
$body
.
css
(
'
padding-right
'
,
bodyPad
+
this
.
scrollbarWidth
)
}
Modal
.
prototype
.
resetScrollbar
=
function
()
{
this
.
$body
.
css
(
'
padding-right
'
,
''
)
}
Modal
.
prototype
.
resetScrollbar
=
function
()
{
this
.
$body
.
css
(
'
padding-right
'
,
''
)
}
Modal
.
prototype
.
measureScrollbar
=
function
()
{
// thx walsh
var
scrollDiv
=
document
.
createElement
(
'
div
'
)
scrollDiv
.
className
=
'
modal-scrollbar-measure
'
this
.
$body
.
append
(
scrollDiv
)
var
scrollbarWidth
=
scrollDiv
.
offsetWidth
-
scrollDiv
.
clientWidth
this
.
$body
[
0
].
removeChild
(
scrollDiv
)
return
scrollbarWidth
}
Modal
.
prototype
.
measureScrollbar
=
function
()
{
// thx walsh
var
scrollDiv
=
document
.
createElement
(
'
div
'
)
scrollDiv
.
className
=
'
modal-scrollbar-measure
'
this
.
$body
.
append
(
scrollDiv
)
var
scrollbarWidth
=
scrollDiv
.
offsetWidth
-
scrollDiv
.
clientWidth
this
.
$body
[
0
].
removeChild
(
scrollDiv
)
return
scrollbarWidth
}
// MODAL PLUGIN DEFINITION
// =======================
// MODAL PLUGIN DEFINITION
// =======================
function
Plugin
(
option
,
_relatedTarget
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.modal
'
)
var
options
=
$
.
extend
({},
Modal
.
DEFAULTS
,
$this
.
data
(),
typeof
option
==
'
object
'
&&
option
)
function
Plugin
(
option
,
_relatedTarget
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.modal
'
)
var
options
=
$
.
extend
({},
Modal
.
DEFAULTS
,
$this
.
data
(),
typeof
option
==
'
object
'
&&
option
)
if
(
!
data
)
$this
.
data
(
'
bs.modal
'
,
(
data
=
new
Modal
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
](
_relatedTarget
)
else
if
(
options
.
show
)
data
.
show
(
_relatedTarget
)
})
}
if
(
!
data
)
$this
.
data
(
'
bs.modal
'
,
(
data
=
new
Modal
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
](
_relatedTarget
)
else
if
(
options
.
show
)
data
.
show
(
_relatedTarget
)
})
}
var
old
=
$
.
fn
.
modal
var
old
=
$
.
fn
.
modal
$
.
fn
.
modal
=
Plugin
$
.
fn
.
modal
.
Constructor
=
Modal
$
.
fn
.
modal
=
Plugin
$
.
fn
.
modal
.
Constructor
=
Modal
// MODAL NO CONFLICT
// =================
// MODAL NO CONFLICT
// =================
$
.
fn
.
modal
.
noConflict
=
function
()
{
$
.
fn
.
modal
=
old
return
this
}
$
.
fn
.
modal
.
noConflict
=
function
()
{
$
.
fn
.
modal
=
old
return
this
}
// MODAL DATA-API
// ==============
// MODAL DATA-API
// ==============
$
(
document
).
on
(
'
click.bs.modal.data-api
'
,
'
[data-toggle="modal"]
'
,
function
(
e
)
{
var
$this
=
$
(
this
)
var
href
=
$this
.
attr
(
'
href
'
)
var
$target
=
$
(
$this
.
attr
(
'
data-target
'
)
||
(
href
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
)))
//strip for ie7
var
option
=
$target
.
data
(
'
bs.modal
'
)
?
'
toggle
'
:
$
.
extend
({
remote
:
!
/#/
.
test
(
href
)
&&
href
},
$target
.
data
(),
$this
.
data
())
$
(
document
).
on
(
'
click.bs.modal.data-api
'
,
'
[data-toggle="modal"]
'
,
function
(
e
)
{
var
$this
=
$
(
this
)
var
href
=
$this
.
attr
(
'
href
'
)
var
$target
=
$
(
$this
.
attr
(
'
data-target
'
)
||
(
href
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
)))
//strip for ie7
var
option
=
$target
.
data
(
'
bs.modal
'
)
?
'
toggle
'
:
$
.
extend
({
remote
:
!
/#/
.
test
(
href
)
&&
href
},
$target
.
data
(),
$this
.
data
())
if
(
$this
.
is
(
'
a
'
))
e
.
preventDefault
()
if
(
$this
.
is
(
'
a
'
))
e
.
preventDefault
()
$target
.
one
(
'
show.bs.modal
'
,
function
(
showEvent
)
{
if
(
showEvent
.
isDefaultPrevented
())
return
// only register focus restorer if modal will actually get shown
$target
.
one
(
'
hidden.bs.modal
'
,
function
()
{
$this
.
is
(
'
:visible
'
)
&&
$this
.
trigger
(
'
focus
'
)
$target
.
one
(
'
show.bs.modal
'
,
function
(
showEvent
)
{
if
(
showEvent
.
isDefaultPrevented
())
return
// only register focus restorer if modal will actually get shown
$target
.
one
(
'
hidden.bs.modal
'
,
function
()
{
$this
.
is
(
'
:visible
'
)
&&
$this
.
trigger
(
'
focus
'
)
})
})
Plugin
.
call
(
$target
,
option
,
this
)
})
Plugin
.
call
(
$target
,
option
,
this
)
})
});
}
(
);
This diff is collapsed.
Click to expand it.
js/popover.js
+
80
-
78
View file @
2b302f69
...
...
@@ -7,111 +7,113 @@
* ======================================================================== */
(
function
(
o_o
)
{
typeof
define
===
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
===
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
+
function
()
{
'
use strict
'
;
'
use strict
'
;
(
function
(
o_o
)
{
typeof
define
==
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
==
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
// POPOVER PUBLIC CLASS DEFINITION
// ===============================
// POPOVER PUBLIC CLASS DEFINITION
// ===============================
var
Popover
=
function
(
element
,
options
)
{
this
.
init
(
'
popover
'
,
element
,
options
)
}
var
Popover
=
function
(
element
,
options
)
{
this
.
init
(
'
popover
'
,
element
,
options
)
}
if
(
!
$
.
fn
.
tooltip
)
throw
new
Error
(
'
Popover requires tooltip.js
'
)
if
(
!
$
.
fn
.
tooltip
)
throw
new
Error
(
'
Popover requires tooltip.js
'
)
Popover
.
VERSION
=
'
3.1.1
'
Popover
.
VERSION
=
'
3.1.1
'
Popover
.
DEFAULTS
=
$
.
extend
({},
$
.
fn
.
tooltip
.
Constructor
.
DEFAULTS
,
{
placement
:
'
right
'
,
trigger
:
'
click
'
,
content
:
''
,
template
:
'
<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>
'
})
Popover
.
DEFAULTS
=
$
.
extend
({},
$
.
fn
.
tooltip
.
Constructor
.
DEFAULTS
,
{
placement
:
'
right
'
,
trigger
:
'
click
'
,
content
:
''
,
template
:
'
<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>
'
})
// NOTE: POPOVER EXTENDS tooltip.js
// ================================
// NOTE: POPOVER EXTENDS tooltip.js
// ================================
Popover
.
prototype
=
$
.
extend
({},
$
.
fn
.
tooltip
.
Constructor
.
prototype
)
Popover
.
prototype
=
$
.
extend
({},
$
.
fn
.
tooltip
.
Constructor
.
prototype
)
Popover
.
prototype
.
constructor
=
Popover
Popover
.
prototype
.
constructor
=
Popover
Popover
.
prototype
.
getDefaults
=
function
()
{
return
Popover
.
DEFAULTS
}
Popover
.
prototype
.
getDefaults
=
function
()
{
return
Popover
.
DEFAULTS
}
Popover
.
prototype
.
setContent
=
function
()
{
var
$tip
=
this
.
tip
()
var
title
=
this
.
getTitle
()
var
content
=
this
.
getContent
()
Popover
.
prototype
.
setContent
=
function
()
{
var
$tip
=
this
.
tip
()
var
title
=
this
.
getTitle
()
var
content
=
this
.
getContent
()
$tip
.
find
(
'
.popover-title
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
title
)
$tip
.
find
(
'
.popover-content
'
).
empty
()[
// we use append for html objects to maintain js events
this
.
options
.
html
?
(
typeof
content
==
'
string
'
?
'
html
'
:
'
append
'
)
:
'
text
'
](
content
)
$tip
.
find
(
'
.popover-title
'
)[
this
.
options
.
html
?
'
html
'
:
'
text
'
](
title
)
$tip
.
find
(
'
.popover-content
'
).
empty
()[
// we use append for html objects to maintain js events
this
.
options
.
html
?
(
typeof
content
==
'
string
'
?
'
html
'
:
'
append
'
)
:
'
text
'
](
content
)
$tip
.
removeClass
(
'
fade top bottom left right in
'
)
$tip
.
removeClass
(
'
fade top bottom left right in
'
)
// IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
// this manually by checking the contents.
if
(
!
$tip
.
find
(
'
.popover-title
'
).
html
())
$tip
.
find
(
'
.popover-title
'
).
hide
()
}
// IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
// this manually by checking the contents.
if
(
!
$tip
.
find
(
'
.popover-title
'
).
html
())
$tip
.
find
(
'
.popover-title
'
).
hide
()
}
Popover
.
prototype
.
hasContent
=
function
()
{
return
this
.
getTitle
()
||
this
.
getContent
()
}
Popover
.
prototype
.
hasContent
=
function
()
{
return
this
.
getTitle
()
||
this
.
getContent
()
}
Popover
.
prototype
.
getContent
=
function
()
{
var
$e
=
this
.
$element
var
o
=
this
.
options
Popover
.
prototype
.
getContent
=
function
()
{
var
$e
=
this
.
$element
var
o
=
this
.
options
return
$e
.
attr
(
'
data-content
'
)
||
(
typeof
o
.
content
==
'
function
'
?
o
.
content
.
call
(
$e
[
0
])
:
o
.
content
)
}
return
$e
.
attr
(
'
data-content
'
)
||
(
typeof
o
.
content
==
'
function
'
?
o
.
content
.
call
(
$e
[
0
])
:
o
.
content
)
}
Popover
.
prototype
.
arrow
=
function
()
{
return
(
this
.
$arrow
=
this
.
$arrow
||
this
.
tip
().
find
(
'
.arrow
'
))
}
Popover
.
prototype
.
arrow
=
function
()
{
return
(
this
.
$arrow
=
this
.
$arrow
||
this
.
tip
().
find
(
'
.arrow
'
))
}
Popover
.
prototype
.
tip
=
function
()
{
if
(
!
this
.
$tip
)
this
.
$tip
=
$
(
this
.
options
.
template
)
return
this
.
$tip
}
Popover
.
prototype
.
tip
=
function
()
{
if
(
!
this
.
$tip
)
this
.
$tip
=
$
(
this
.
options
.
template
)
return
this
.
$tip
}
// POPOVER PLUGIN DEFINITION
// =========================
// POPOVER PLUGIN DEFINITION
// =========================
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.popover
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.popover
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
if
(
!
data
&&
option
==
'
destroy
'
)
return
if
(
!
data
)
$this
.
data
(
'
bs.popover
'
,
(
data
=
new
Popover
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
if
(
!
data
&&
option
==
'
destroy
'
)
return
if
(
!
data
)
$this
.
data
(
'
bs.popover
'
,
(
data
=
new
Popover
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
var
old
=
$
.
fn
.
popover
var
old
=
$
.
fn
.
popover
$
.
fn
.
popover
=
Plugin
$
.
fn
.
popover
.
Constructor
=
Popover
$
.
fn
.
popover
=
Plugin
$
.
fn
.
popover
.
Constructor
=
Popover
// POPOVER NO CONFLICT
// ===================
// POPOVER NO CONFLICT
// ===================
$
.
fn
.
popover
.
noConflict
=
function
()
{
$
.
fn
.
popover
=
old
return
this
}
$
.
fn
.
popover
.
noConflict
=
function
()
{
$
.
fn
.
popover
=
old
return
this
}
})
});
}
(
);
This diff is collapsed.
Click to expand it.
js/scrollspy.js
+
133
-
131
View file @
2b302f69
...
...
@@ -7,168 +7,170 @@
* ======================================================================== */
(
function
(
o_o
)
{
typeof
define
===
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
===
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
'
use strict
'
;
// SCROLLSPY CLASS DEFINITION
// ==========================
function
ScrollSpy
(
element
,
options
)
{
var
process
=
$
.
proxy
(
this
.
process
,
this
)
this
.
$body
=
$
(
'
body
'
)
this
.
$scrollElement
=
$
(
element
).
is
(
'
body
'
)
?
$
(
window
)
:
$
(
element
)
this
.
options
=
$
.
extend
({},
ScrollSpy
.
DEFAULTS
,
options
)
this
.
selector
=
(
this
.
options
.
target
||
''
)
+
'
.nav li > a
'
this
.
offsets
=
[]
this
.
targets
=
[]
this
.
activeTarget
=
null
this
.
scrollHeight
=
0
this
.
$scrollElement
.
on
(
'
scroll.bs.scrollspy
'
,
process
)
this
.
refresh
()
this
.
process
()
}
ScrollSpy
.
VERSION
=
'
3.1.1
'
ScrollSpy
.
DEFAULTS
=
{
offset
:
10
}
ScrollSpy
.
prototype
.
getScrollHeight
=
function
()
{
return
this
.
$scrollElement
[
0
].
scrollHeight
||
Math
.
max
(
this
.
$body
[
0
].
scrollHeight
,
document
.
documentElement
.
scrollHeight
)
}
ScrollSpy
.
prototype
.
refresh
=
function
()
{
var
offsetMethod
=
'
offset
'
var
offsetBase
=
0
if
(
!
$
.
isWindow
(
this
.
$scrollElement
[
0
]))
{
offsetMethod
=
'
position
'
offsetBase
=
this
.
$scrollElement
.
scrollTop
()
}
+
function
()
{
'
use strict
'
;
this
.
offsets
=
[]
this
.
targets
=
[]
this
.
scrollHeight
=
this
.
getScrollHeight
()
(
function
(
o_o
)
{
typeof
define
==
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
==
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
var
self
=
this
// SCROLLSPY CLASS DEFINITION
// ==========================
this
.
$body
.
find
(
this
.
selector
)
.
map
(
function
()
{
var
$el
=
$
(
this
)
var
href
=
$el
.
data
(
'
target
'
)
||
$el
.
attr
(
'
href
'
)
var
$href
=
/^#./
.
test
(
href
)
&&
$
(
href
)
function
ScrollSpy
(
element
,
options
)
{
var
process
=
$
.
proxy
(
this
.
process
,
this
)
return
(
$href
&&
$href
.
length
&&
$href
.
is
(
'
:visible
'
)
&&
[[
$href
[
offsetMethod
]().
top
+
offsetBase
,
href
]])
||
null
})
.
sort
(
function
(
a
,
b
)
{
return
a
[
0
]
-
b
[
0
]
})
.
each
(
function
()
{
self
.
offsets
.
push
(
this
[
0
])
self
.
targets
.
push
(
this
[
1
])
})
}
ScrollSpy
.
prototype
.
process
=
function
()
{
var
scrollTop
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
var
scrollHeight
=
this
.
getScrollHeight
()
var
maxScroll
=
this
.
options
.
offset
+
scrollHeight
-
this
.
$scrollElement
.
height
()
var
offsets
=
this
.
offsets
var
targets
=
this
.
targets
var
activeTarget
=
this
.
activeTarget
var
i
if
(
this
.
scrollHeight
!=
scrollHeight
)
{
this
.
$body
=
$
(
'
body
'
)
this
.
$scrollElement
=
$
(
element
).
is
(
'
body
'
)
?
$
(
window
)
:
$
(
element
)
this
.
options
=
$
.
extend
({},
ScrollSpy
.
DEFAULTS
,
options
)
this
.
selector
=
(
this
.
options
.
target
||
''
)
+
'
.nav li > a
'
this
.
offsets
=
[]
this
.
targets
=
[]
this
.
activeTarget
=
null
this
.
scrollHeight
=
0
this
.
$scrollElement
.
on
(
'
scroll.bs.scrollspy
'
,
process
)
this
.
refresh
()
this
.
process
()
}
if
(
scrollTop
>=
maxScroll
)
{
return
activeTarget
!=
(
i
=
targets
[
targets
.
length
-
1
])
&&
this
.
activate
(
i
)
ScrollSpy
.
VERSION
=
'
3.1.1
'
ScrollSpy
.
DEFAULTS
=
{
offset
:
10
}
if
(
activeTarget
&&
scrollTop
<=
offsets
[
0
]
)
{
return
activeTarget
!=
(
i
=
targets
[
0
])
&&
this
.
activate
(
i
)
ScrollSpy
.
prototype
.
getScrollHeight
=
function
(
)
{
return
this
.
$scrollElement
[
0
].
scrollHeight
||
Math
.
max
(
this
.
$body
[
0
].
scrollHeight
,
document
.
documentElement
.
scrollHeight
)
}
for
(
i
=
offsets
.
length
;
i
--
;)
{
activeTarget
!=
targets
[
i
]
&&
scrollTop
>=
offsets
[
i
]
&&
(
!
offsets
[
i
+
1
]
||
scrollTop
<=
offsets
[
i
+
1
])
&&
this
.
activate
(
targets
[
i
])
ScrollSpy
.
prototype
.
refresh
=
function
()
{
var
offsetMethod
=
'
offset
'
var
offsetBase
=
0
if
(
!
$
.
isWindow
(
this
.
$scrollElement
[
0
]))
{
offsetMethod
=
'
position
'
offsetBase
=
this
.
$scrollElement
.
scrollTop
()
}
this
.
offsets
=
[]
this
.
targets
=
[]
this
.
scrollHeight
=
this
.
getScrollHeight
()
var
self
=
this
this
.
$body
.
find
(
this
.
selector
)
.
map
(
function
()
{
var
$el
=
$
(
this
)
var
href
=
$el
.
data
(
'
target
'
)
||
$el
.
attr
(
'
href
'
)
var
$href
=
/^#./
.
test
(
href
)
&&
$
(
href
)
return
(
$href
&&
$href
.
length
&&
$href
.
is
(
'
:visible
'
)
&&
[[
$href
[
offsetMethod
]().
top
+
offsetBase
,
href
]])
||
null
})
.
sort
(
function
(
a
,
b
)
{
return
a
[
0
]
-
b
[
0
]
})
.
each
(
function
()
{
self
.
offsets
.
push
(
this
[
0
])
self
.
targets
.
push
(
this
[
1
])
})
}
}
ScrollSpy
.
prototype
.
activate
=
function
(
target
)
{
this
.
activeTarget
=
target
ScrollSpy
.
prototype
.
process
=
function
()
{
var
scrollTop
=
this
.
$scrollElement
.
scrollTop
()
+
this
.
options
.
offset
var
scrollHeight
=
this
.
getScrollHeight
()
var
maxScroll
=
this
.
options
.
offset
+
scrollHeight
-
this
.
$scrollElement
.
height
()
var
offsets
=
this
.
offsets
var
targets
=
this
.
targets
var
activeTarget
=
this
.
activeTarget
var
i
if
(
this
.
scrollHeight
!=
scrollHeight
)
{
this
.
refresh
()
}
if
(
scrollTop
>=
maxScroll
)
{
return
activeTarget
!=
(
i
=
targets
[
targets
.
length
-
1
])
&&
this
.
activate
(
i
)
}
if
(
activeTarget
&&
scrollTop
<=
offsets
[
0
])
{
return
activeTarget
!=
(
i
=
targets
[
0
])
&&
this
.
activate
(
i
)
}
for
(
i
=
offsets
.
length
;
i
--
;)
{
activeTarget
!=
targets
[
i
]
&&
scrollTop
>=
offsets
[
i
]
&&
(
!
offsets
[
i
+
1
]
||
scrollTop
<=
offsets
[
i
+
1
])
&&
this
.
activate
(
targets
[
i
])
}
}
$
(
this
.
selector
)
.
parentsUntil
(
this
.
options
.
target
,
'
.active
'
)
.
removeClass
(
'
active
'
)
ScrollSpy
.
prototype
.
activate
=
function
(
target
)
{
this
.
activeTarget
=
target
var
selector
=
this
.
selector
+
'
[data-target="
'
+
target
+
'
"],
'
+
this
.
selector
+
'
[href="
'
+
target
+
'
"]
'
$
(
this
.
selector
)
.
parentsUntil
(
this
.
options
.
target
,
'
.active
'
)
.
removeClass
(
'
active
'
)
var
active
=
$
(
selector
)
.
parents
(
'
li
'
)
.
addClass
(
'
active
'
)
var
selector
=
this
.
selector
+
'
[data-target="
'
+
target
+
'
"],
'
+
this
.
selector
+
'
[href="
'
+
target
+
'
"]
'
if
(
active
.
parent
(
'
.dropdown-menu
'
).
length
)
{
active
=
active
.
closest
(
'
li.dropdown
'
)
var
active
=
$
(
selector
)
.
parents
(
'
li
'
)
.
addClass
(
'
active
'
)
}
active
.
trigger
(
'
activate.bs.scrollspy
'
)
}
if
(
active
.
parent
(
'
.dropdown-menu
'
).
length
)
{
active
=
active
.
closest
(
'
li.dropdown
'
)
.
addClass
(
'
active
'
)
}
active
.
trigger
(
'
activate.bs.scrollspy
'
)
}
// SCROLLSPY PLUGIN DEFINITION
// ===========================
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.scrollspy
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
// SCROLLSPY PLUGIN DEFINITION
// ===========================
if
(
!
data
)
$this
.
data
(
'
bs.scrollspy
'
,
(
data
=
new
ScrollSpy
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.scrollspy
'
)
var
options
=
typeof
option
==
'
object
'
&&
option
var
old
=
$
.
fn
.
scrollspy
if
(
!
data
)
$this
.
data
(
'
bs.scrollspy
'
,
(
data
=
new
ScrollSpy
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
$
.
fn
.
scrollspy
=
Plugin
$
.
fn
.
scrollspy
.
Constructor
=
ScrollSpy
var
old
=
$
.
fn
.
scrollspy
$
.
fn
.
scrollspy
=
Plugin
$
.
fn
.
scrollspy
.
Constructor
=
ScrollSpy
// SCROLLSPY NO CONFLICT
// =====================
$
.
fn
.
scrollspy
.
noConflict
=
function
()
{
$
.
fn
.
scrollspy
=
old
return
this
}
// SCROLLSPY NO CONFLICT
// =====================
$
.
fn
.
scrollspy
.
noConflict
=
function
()
{
$
.
fn
.
scrollspy
=
old
return
this
}
// SCROLLSPY DATA-API
// ==================
$
(
window
).
on
(
'
load.bs.scrollspy.data-api
'
,
function
()
{
$
(
'
[data-spy="scroll"]
'
).
each
(
function
()
{
var
$spy
=
$
(
this
)
Plugin
.
call
(
$spy
,
$spy
.
data
())
// SCROLLSPY DATA-API
// ==================
$
(
window
).
on
(
'
load.bs.scrollspy.data-api
'
,
function
()
{
$
(
'
[data-spy="scroll"]
'
).
each
(
function
()
{
var
$spy
=
$
(
this
)
Plugin
.
call
(
$spy
,
$spy
.
data
())
})
})
})
});
}
(
);
This diff is collapsed.
Click to expand it.
js/tab.js
+
93
-
91
View file @
2b302f69
...
...
@@ -7,126 +7,128 @@
* ======================================================================== */
(
function
(
o_o
)
{
typeof
define
===
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
===
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
+
function
()
{
'
use strict
'
;
'
use strict
'
;
(
function
(
o_o
)
{
typeof
define
==
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
==
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
// TAB CLASS DEFINITION
// ====================
// TAB CLASS DEFINITION
// ====================
var
Tab
=
function
(
element
)
{
this
.
element
=
$
(
element
)
}
var
Tab
=
function
(
element
)
{
this
.
element
=
$
(
element
)
}
Tab
.
VERSION
=
'
3.1.1
'
Tab
.
VERSION
=
'
3.1.1
'
Tab
.
prototype
.
show
=
function
()
{
var
$this
=
this
.
element
var
$ul
=
$this
.
closest
(
'
ul:not(.dropdown-menu)
'
)
var
selector
=
$this
.
data
(
'
target
'
)
Tab
.
prototype
.
show
=
function
()
{
var
$this
=
this
.
element
var
$ul
=
$this
.
closest
(
'
ul:not(.dropdown-menu)
'
)
var
selector
=
$this
.
data
(
'
target
'
)
if
(
!
selector
)
{
selector
=
$this
.
attr
(
'
href
'
)
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
''
)
//strip for ie7
}
if
(
!
selector
)
{
selector
=
$this
.
attr
(
'
href
'
)
selector
=
selector
&&
selector
.
replace
(
/.*
(?=
#
[^\s]
*$
)
/
,
''
)
//strip for ie7
}
if
(
$this
.
parent
(
'
li
'
).
hasClass
(
'
active
'
))
return
if
(
$this
.
parent
(
'
li
'
).
hasClass
(
'
active
'
))
return
var
previous
=
$ul
.
find
(
'
.active:last a
'
)[
0
]
var
e
=
$
.
Event
(
'
show.bs.tab
'
,
{
relatedTarget
:
previous
})
var
previous
=
$ul
.
find
(
'
.active:last a
'
)[
0
]
var
e
=
$
.
Event
(
'
show.bs.tab
'
,
{
relatedTarget
:
previous
})
$this
.
trigger
(
e
)
$this
.
trigger
(
e
)
if
(
e
.
isDefaultPrevented
())
return
if
(
e
.
isDefaultPrevented
())
return
var
$target
=
$
(
selector
)
var
$target
=
$
(
selector
)
this
.
activate
(
$this
.
closest
(
'
li
'
),
$ul
)
this
.
activate
(
$target
,
$target
.
parent
(),
function
()
{
$this
.
trigger
({
type
:
'
shown.bs.tab
'
,
relatedTarget
:
previous
this
.
activate
(
$this
.
closest
(
'
li
'
),
$ul
)
this
.
activate
(
$target
,
$target
.
parent
(),
function
()
{
$this
.
trigger
({
type
:
'
shown.bs.tab
'
,
relatedTarget
:
previous
})
})
})
}
Tab
.
prototype
.
activate
=
function
(
element
,
container
,
callback
)
{
var
$active
=
container
.
find
(
'
> .active
'
)
var
transition
=
callback
&&
$
.
support
.
transition
&&
$active
.
hasClass
(
'
fade
'
)
function
next
()
{
$active
.
removeClass
(
'
active
'
)
.
find
(
'
> .dropdown-menu > .active
'
)
.
removeClass
(
'
active
'
)
element
.
addClass
(
'
active
'
)
if
(
transition
)
{
element
[
0
].
offsetWidth
// reflow for transition
element
.
addClass
(
'
in
'
)
}
else
{
element
.
removeClass
(
'
fade
'
)
}
}
Tab
.
prototype
.
activate
=
function
(
element
,
container
,
callback
)
{
var
$active
=
container
.
find
(
'
> .active
'
)
var
transition
=
callback
&&
$
.
support
.
transition
&&
$active
.
hasClass
(
'
fade
'
)
if
(
element
.
parent
(
'
.dropdown-menu
'
))
{
element
.
closest
(
'
li.dropdown
'
).
addClass
(
'
active
'
)
function
next
()
{
$active
.
removeClass
(
'
active
'
)
.
find
(
'
> .dropdown-menu > .active
'
)
.
removeClass
(
'
active
'
)
element
.
addClass
(
'
active
'
)
if
(
transition
)
{
element
[
0
].
offsetWidth
// reflow for transition
element
.
addClass
(
'
in
'
)
}
else
{
element
.
removeClass
(
'
fade
'
)
}
if
(
element
.
parent
(
'
.dropdown-menu
'
))
{
element
.
closest
(
'
li.dropdown
'
).
addClass
(
'
active
'
)
}
callback
&&
callback
()
}
callback
&&
callback
()
}
transition
?
$active
.
one
(
'
bsTransitionEnd
'
,
next
)
.
emulateTransitionEnd
(
150
)
:
next
()
transition
?
$active
.
one
(
'
bsTransitionEnd
'
,
next
)
.
emulateTransitionEnd
(
150
)
:
next
()
$active
.
removeClass
(
'
in
'
)
}
$active
.
removeClass
(
'
in
'
)
}
// TAB PLUGIN DEFINITION
// =====================
// TAB PLUGIN DEFINITION
// =====================
function
Plugin
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.tab
'
)
function
Plugin
(
option
)
{
return
this
.
each
(
func
tion
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs.tab
'
)
if
(
!
data
)
$this
.
data
(
'
bs.tab
'
,
(
data
=
new
Tab
(
this
)))
if
(
typeof
option
==
'
string
'
)
data
[
op
tion
]
()
}
)
}
if
(
!
data
)
$this
.
data
(
'
bs.tab
'
,
(
data
=
new
Tab
(
this
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
]()
})
}
var
old
=
$
.
fn
.
tab
var
old
=
$
.
fn
.
tab
$
.
fn
.
tab
=
Plugin
$
.
fn
.
tab
.
Constructor
=
Tab
$
.
fn
.
tab
=
Plugin
$
.
fn
.
tab
.
Constructor
=
Tab
// TAB NO CONFLICT
// ===============
// TAB NO CONFLICT
// ===============
$
.
fn
.
tab
.
noConflict
=
function
()
{
$
.
fn
.
tab
=
old
return
this
}
$
.
fn
.
tab
.
noConflict
=
function
()
{
$
.
fn
.
tab
=
old
return
this
}
// TAB DATA-API
// ============
// TAB DATA-API
// ============
$
(
document
).
on
(
'
click.bs.tab.data-api
'
,
'
[data-toggle="tab"], [data-toggle="pill"]
'
,
function
(
e
)
{
e
.
preventDefault
()
Plugin
.
call
(
$
(
this
),
'
show
'
)
})
$
(
document
).
on
(
'
click.bs.tab.data-api
'
,
'
[data-toggle="tab"], [data-toggle="pill"]
'
,
function
(
e
)
{
e
.
preventDefault
()
Plugin
.
call
(
$
(
this
),
'
show
'
)
})
});
}
(
);
This diff is collapsed.
Click to expand it.
js/tooltip.js
+
351
-
349
View file @
2b302f69
This diff is collapsed.
Click to expand it.
js/transition.js
+
45
-
43
View file @
2b302f69
...
...
@@ -7,57 +7,59 @@
* ======================================================================== */
(
function
(
o_o
)
{
typeof
define
===
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
===
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
+
function
()
{
'
use strict
'
;
'
use strict
'
;
(
function
(
o_o
)
{
typeof
define
==
'
function
'
&&
define
.
amd
?
define
([
'
jquery
'
],
o_o
)
:
typeof
exports
==
'
object
'
?
o_o
(
require
(
'
jquery
'
))
:
o_o
(
jQuery
)
})(
function
(
$
)
{
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
// ============================================================
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
// ============================================================
function
transitionEnd
()
{
var
el
=
document
.
createElement
(
'
bootstrap
'
)
function
transitionEnd
()
{
var
el
=
document
.
createElement
(
'
bootstrap
'
)
var
transEndEventNames
=
{
WebkitTransition
:
'
webkitTransitionEnd
'
,
MozTransition
:
'
transitionend
'
,
OTransition
:
'
oTransitionEnd otransitionend
'
,
transition
:
'
transitionend
'
}
var
transEndEventNames
=
{
WebkitTransition
:
'
webkitTransitionEnd
'
,
MozTransition
:
'
transitionend
'
,
OTransition
:
'
oTransitionEnd otransitionend
'
,
transition
:
'
transitionend
'
}
for
(
var
name
in
transEndEventNames
)
{
if
(
el
.
style
[
name
]
!==
undefined
)
{
return
{
end
:
transEndEventNames
[
name
]
}
for
(
var
name
in
transEndEventNames
)
{
if
(
el
.
style
[
name
]
!==
undefined
)
{
return
{
end
:
transEndEventNames
[
name
]
}
}
}
return
false
// explicit for ie8 ( ._.)
}
return
false
// explicit for ie8 ( ._.)
}
// http://blog.alexmaccaw.com/css-transitions
$
.
fn
.
emulateTransitionEnd
=
function
(
duration
)
{
var
called
=
false
var
$el
=
this
$
(
this
).
one
(
'
bsTransitionEnd
'
,
function
()
{
called
=
true
})
var
callback
=
function
()
{
if
(
!
called
)
$
(
$el
).
trigger
(
$
.
support
.
transition
.
end
)
}
setTimeout
(
callback
,
duration
)
return
this
}
$
(
function
()
{
$
.
support
.
transition
=
transitionEnd
()
if
(
!
$
.
support
.
transition
)
return
$
.
event
.
special
.
bsTransitionEnd
=
{
bindType
:
$
.
support
.
transition
.
end
,
delegateType
:
$
.
support
.
transition
.
end
,
handle
:
function
(
e
)
{
if
(
$
(
e
.
target
).
is
(
this
))
return
e
.
handleObj
.
handler
.
apply
(
this
,
arguments
)
}
// http://blog.alexmaccaw.com/css-transitions
$
.
fn
.
emulateTransitionEnd
=
function
(
duration
)
{
var
called
=
false
var
$el
=
this
$
(
this
).
one
(
'
bsTransitionEnd
'
,
function
()
{
called
=
true
})
var
callback
=
function
()
{
if
(
!
called
)
$
(
$el
).
trigger
(
$
.
support
.
transition
.
end
)
}
setTimeout
(
callback
,
duration
)
return
this
}
$
(
function
()
{
$
.
support
.
transition
=
transitionEnd
()
if
(
!
$
.
support
.
transition
)
return
$
.
event
.
special
.
bsTransitionEnd
=
{
bindType
:
$
.
support
.
transition
.
end
,
delegateType
:
$
.
support
.
transition
.
end
,
handle
:
function
(
e
)
{
if
(
$
(
e
.
target
).
is
(
this
))
return
e
.
handleObj
.
handler
.
apply
(
this
,
arguments
)
}
}
})
})
});
}
(
);
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment