Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zui
提交
2839a104
Z
zui
项目概览
易企天创
/
zui
12 个月 前同步成功
通知
6
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
37
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zui
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
37
Issue
37
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
2839a104
编写于
8月 28, 2014
作者:
C
Catouse
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
* updated modal.js to bootstrap 3.0.
上级
9e73c107
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
119 addition
and
93 deletion
+119
-93
src/js/modal.js
src/js/modal.js
+119
-93
未找到文件。
src/js/modal.js
浏览文件 @
2839a104
/* ========================================================================
* Bootstrap: modal.js v3.
0
.0
* http://
twbs.github.com/bootstrap/javascript.html
#modals
* Bootstrap: modal.js v3.
2
.0
* http://
getbootstrap.com/javascript/
#modals
* ========================================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* Copyright 2011-2014 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
+
function
(
$
)
{
"
use strict
"
;
+
function
(
$
)
{
'
use strict
'
;
// MODAL CLASS DEFINITION
// ======================
var
Modal
=
function
(
element
,
options
)
{
this
.
options
=
options
this
.
$element
=
$
(
element
)
this
.
$backdrop
=
this
.
isShown
=
null
if
(
this
.
options
.
remote
)
this
.
$element
.
load
(
this
.
options
.
remote
)
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.zui.modal
'
)
},
this
))
}
}
Modal
.
VERSION
=
'
3.2.0
'
Modal
.
TRANSITION_DURATION
=
300
Modal
.
BACKDROP_TRANSITION_DURATION
=
150
Modal
.
DEFAULTS
=
{
backdrop
:
true
,
keyboard
:
true
,
show
:
true
,
position
:
'
fit
'
// 'center' or '40px' or '10%'
backdrop
:
true
,
keyboard
:
true
,
show
:
true
}
Modal
.
prototype
.
toggle
=
function
(
_relatedTarget
)
{
return
this
[
!
this
.
isShown
?
'
show
'
:
'
hide
'
]
(
_relatedTarget
)
return
this
.
isShown
?
this
.
hide
()
:
this
.
show
(
_relatedTarget
)
}
Modal
.
prototype
.
show
=
function
(
_relatedTarget
)
{
var
that
=
this
var
e
=
$
.
Event
(
'
show.
bs
.modal
'
,
{
relatedTarget
:
_relatedTarget
})
var
e
=
$
.
Event
(
'
show.
zui
.modal
'
,
{
relatedTarget
:
_relatedTarget
})
this
.
$element
.
trigger
(
e
)
...
...
@@ -53,18 +55,24 @@
this
.
isShown
=
true
this
.
checkScrollbar
()
this
.
$body
.
addClass
(
'
modal-open
'
)
this
.
setScrollbar
()
this
.
escape
()
this
.
$element
.
on
(
'
click.dismiss.modal
'
,
'
[data-dismiss="modal"]
'
,
$
.
proxy
(
this
.
hide
,
this
))
this
.
$element
.
on
(
'
click.dismiss.
zui.
modal
'
,
'
[data-dismiss="modal"]
'
,
$
.
proxy
(
this
.
hide
,
this
))
this
.
backdrop
(
function
()
{
var
transition
=
$
.
support
.
transition
&&
that
.
$element
.
hasClass
(
'
fade
'
)
if
(
!
that
.
$element
.
parent
().
length
)
{
that
.
$element
.
appendTo
(
document
.
body
)
// don't move modals dom position
that
.
$element
.
appendTo
(
that
.
$
body
)
// don't move modals dom position
}
that
.
$element
.
show
()
that
.
$element
.
show
()
.
scrollTop
(
0
)
if
(
transition
)
{
that
.
$element
[
0
].
offsetWidth
// force reflow
...
...
@@ -74,32 +82,24 @@
.
addClass
(
'
in
'
)
.
attr
(
'
aria-hidden
'
,
false
)
if
(
that
.
options
.
position
)
{
var
dialog
=
that
.
$element
.
find
(
'
.modal-dialog
'
);
var
half
=
Math
.
max
(
0
,
(
$
(
window
).
height
()
-
dialog
.
outerHeight
())
/
2
);
var
pos
=
that
.
options
.
position
==
'
fit
'
?
(
half
*
2
/
3
)
:
(
that
.
options
.
position
==
'
center
'
?
half
:
that
.
options
.
position
);
dialog
.
css
(
'
margin-top
'
,
pos
);
}
that
.
enforceFocus
()
var
e
=
$
.
Event
(
'
shown.
bs
.modal
'
,
{
relatedTarget
:
_relatedTarget
})
var
e
=
$
.
Event
(
'
shown.
zui
.modal
'
,
{
relatedTarget
:
_relatedTarget
})
transition
?
that
.
$element
.
find
(
'
.modal-dialog
'
)
// wait for modal to slide in
.
one
(
$
.
support
.
transition
.
end
,
function
()
{
that
.
$element
.
focus
(
).
trigger
(
e
)
.
one
(
'
bsTransitionEnd
'
,
function
()
{
that
.
$element
.
trigger
(
'
focus
'
).
trigger
(
e
)
})
.
emulateTransitionEnd
(
300
)
:
that
.
$element
.
focus
(
).
trigger
(
e
)
.
emulateTransitionEnd
(
Modal
.
TRANSITION_DURATION
)
:
that
.
$element
.
trigger
(
'
focus
'
).
trigger
(
e
)
})
}
Modal
.
prototype
.
hide
=
function
(
e
)
{
if
(
e
)
e
.
preventDefault
()
e
=
$
.
Event
(
'
hide.
bs
.modal
'
)
e
=
$
.
Event
(
'
hide.
zui
.modal
'
)
this
.
$element
.
trigger
(
e
)
...
...
@@ -107,45 +107,42 @@
this
.
isShown
=
false
this
.
$body
.
removeClass
(
'
modal-open
'
)
this
.
resetScrollbar
()
this
.
escape
()
$
(
document
).
off
(
'
focusin.
bs
.modal
'
)
$
(
document
).
off
(
'
focusin.
zui
.modal
'
)
this
.
$element
.
removeClass
(
'
in
'
)
.
attr
(
'
aria-hidden
'
,
true
)
.
off
(
'
click.dismiss.modal
'
)
.
off
(
'
click.dismiss.
zui.
modal
'
)
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)
?
this
.
$element
.
one
(
$
.
support
.
transition
.
end
,
$
.
proxy
(
this
.
hideModal
,
this
))
.
emulateTransitionEnd
(
300
)
:
.
one
(
'
bsTransitionEnd
'
,
$
.
proxy
(
this
.
hideModal
,
this
))
.
emulateTransitionEnd
(
Modal
.
TRANSITION_DURATION
)
:
this
.
hideModal
()
}
Modal
.
prototype
.
enforceFocus
=
function
()
{
$
(
document
)
.
off
(
'
focusin.
bs
.modal
'
)
// guard against infinite focus loop
.
on
(
'
focusin.
bs
.modal
'
,
$
.
proxy
(
function
(
e
)
{
.
off
(
'
focusin.
zui
.modal
'
)
// guard against infinite focus loop
.
on
(
'
focusin.
zui
.modal
'
,
$
.
proxy
(
function
(
e
)
{
if
(
this
.
$element
[
0
]
!==
e
.
target
&&
!
this
.
$element
.
has
(
e
.
target
).
length
)
{
this
.
$element
.
focus
(
)
this
.
$element
.
trigger
(
'
focus
'
)
}
},
this
))
}
Modal
.
prototype
.
escape
=
function
()
{
if
(
this
.
isShown
&&
this
.
options
.
keyboard
)
{
$
(
document
).
on
(
'
keyup.dismiss.bs.modal
'
,
$
.
proxy
(
function
(
e
)
{
if
(
e
.
which
==
27
)
{
var
et
=
$
.
Event
(
'
escaping.bs.modal
'
)
var
result
=
this
.
$element
.
triggerHandler
(
et
,
'
esc
'
)
if
(
result
!=
undefined
&&
(
!
result
))
return
this
.
hide
()
}
this
.
$element
.
on
(
'
keydown.dismiss.zui.modal
'
,
$
.
proxy
(
function
(
e
)
{
e
.
which
==
27
&&
this
.
hide
()
},
this
))
}
else
if
(
!
this
.
isShown
)
{
$
(
document
).
off
(
'
keyup.dismiss.bs
.modal
'
)
this
.
$element
.
off
(
'
keydown.dismiss.zui
.modal
'
)
}
}
...
...
@@ -153,8 +150,7 @@
var
that
=
this
this
.
$element
.
hide
()
this
.
backdrop
(
function
()
{
that
.
removeBackdrop
()
that
.
$element
.
trigger
(
'
hidden.bs.modal
'
)
that
.
$element
.
trigger
(
'
hidden.zui.modal
'
)
})
}
...
...
@@ -164,16 +160,16 @@
}
Modal
.
prototype
.
backdrop
=
function
(
callback
)
{
var
that
=
this
var
that
=
this
var
animate
=
this
.
$element
.
hasClass
(
'
fade
'
)
?
'
fade
'
:
''
if
(
this
.
isShown
&&
this
.
options
.
backdrop
)
{
var
doAnimate
=
$
.
support
.
transition
&&
animate
this
.
$backdrop
=
$
(
'
<div class="modal-backdrop
'
+
animate
+
'
" />
'
)
.
appendTo
(
document
.
body
)
.
appendTo
(
this
.
$
body
)
this
.
$element
.
on
(
'
click.dismiss
.modal
'
,
$
.
proxy
(
function
(
e
)
{
this
.
$element
.
on
(
'
mousedown.dismiss.zui
.modal
'
,
$
.
proxy
(
function
(
e
)
{
if
(
e
.
target
!==
e
.
currentTarget
)
return
this
.
options
.
backdrop
==
'
static
'
?
this
.
$element
[
0
].
focus
.
call
(
this
.
$element
[
0
])
...
...
@@ -188,42 +184,70 @@
doAnimate
?
this
.
$backdrop
.
one
(
$
.
support
.
transition
.
end
,
callback
)
.
emulateTransitionEnd
(
150
)
:
.
one
(
'
bsTransitionEnd
'
,
callback
)
.
emulateTransitionEnd
(
Modal
.
BACKDROP_TRANSITION_DURATION
)
:
callback
()
}
else
if
(
!
this
.
isShown
&&
this
.
$backdrop
)
{
this
.
$backdrop
.
removeClass
(
'
in
'
)
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)?
var
callbackRemove
=
function
()
{
that
.
removeBackdrop
()
callback
&&
callback
()
}
$
.
support
.
transition
&&
this
.
$element
.
hasClass
(
'
fade
'
)
?
this
.
$backdrop
.
one
(
$
.
support
.
transition
.
end
,
callback
)
.
emulateTransitionEnd
(
150
)
:
callback
()
.
one
(
'
bsTransitionEnd
'
,
callbackRemove
)
.
emulateTransitionEnd
(
Modal
.
BACKDROP_TRANSITION_DURATION
)
:
callback
Remove
()
}
else
if
(
callback
)
{
callback
()
}
}
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
.
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 PLUGIN DEFINITION
// =======================
var
old
=
$
.
fn
.
modal
$
.
fn
.
modal
=
function
(
option
,
_relatedTarget
)
{
function
Plugin
(
option
,
_relatedTarget
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
)
var
data
=
$this
.
data
(
'
bs
.modal
'
)
var
data
=
$this
.
data
(
'
zui
.modal
'
)
var
options
=
$
.
extend
({},
Modal
.
DEFAULTS
,
$this
.
data
(),
typeof
option
==
'
object
'
&&
option
)
if
(
!
data
)
$this
.
data
(
'
bs
.modal
'
,
(
data
=
new
Modal
(
this
,
options
)))
if
(
!
data
)
$this
.
data
(
'
zui
.modal
'
,
(
data
=
new
Modal
(
this
,
options
)))
if
(
typeof
option
==
'
string
'
)
data
[
option
](
_relatedTarget
)
else
if
(
options
.
show
)
data
.
show
(
_relatedTarget
)
})
}
var
old
=
$
.
fn
.
modal
$
.
fn
.
modal
=
Plugin
$
.
fn
.
modal
.
Constructor
=
Modal
...
...
@@ -239,24 +263,26 @@
// MODAL DATA-API
// ==============
$
(
document
).
on
(
'
click.
bs
.modal.data-api
'
,
'
[data-toggle="modal"]
'
,
function
(
e
)
{
$
(
document
).
on
(
'
click.
zui
.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
if
(
$target
.
length
<
1
)
return
;
var
option
=
$target
.
data
(
'
modal
'
)
?
'
toggle
'
:
$
.
extend
({
remote
:
!
/#/
.
test
(
href
)
&&
href
},
$target
.
data
(),
$this
.
data
())
e
.
preventDefault
()
$target
.
modal
(
option
,
this
)
.
one
(
'
hide
'
,
function
()
{
$this
.
is
(
'
:visible
'
)
&&
$this
.
focus
()
var
$target
=
null
try
{
// strip for ie7
$target
=
$
(
$this
.
attr
(
'
data-target
'
)
||
(
href
&&
href
.
replace
(
/.*
(?=
#
[^\s]
+$
)
/
,
''
)));
}
catch
(
ex
){
return
}
var
option
=
$target
.
data
(
'
zui.modal
'
)
?
'
toggle
'
:
$
.
extend
({
remote
:
!
/#/
.
test
(
href
)
&&
href
},
$target
.
data
(),
$this
.
data
())
if
(
$this
.
is
(
'
a
'
))
e
.
preventDefault
()
$target
.
one
(
'
show.zui.modal
'
,
function
(
showEvent
)
{
if
(
showEvent
.
isDefaultPrevented
())
return
// only register focus restorer if modal will actually get shown
$target
.
one
(
'
hidden.zui.modal
'
,
function
()
{
$this
.
is
(
'
:visible
'
)
&&
$this
.
trigger
(
'
focus
'
)
})
})
Plugin
.
call
(
$target
,
option
,
this
)
})
$
(
document
)
.
on
(
'
show.bs.modal
'
,
'
.modal
'
,
function
()
{
$
(
document
.
body
).
addClass
(
'
modal-open
'
)
})
.
on
(
'
hidden.bs.modal
'
,
'
.modal
'
,
function
()
{
$
(
document
.
body
).
removeClass
(
'
modal-open
'
)
})
}(
window
.
jQuery
);
}(
jQuery
);
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录