我正在尝试使用相同的热键打开和关闭模态窗口:
if !$('#new-stuff').length or $('#new-stuff').is(':hidden')
$(document).keydown( (e) ->
if e.altKey && e.which == 65
e.preventDefault
modal.open(
content: '<input type="text" placeholder="New stuff here!" id="new-stuff"><br /><input type="submit" value="Do stuff!">'
)
).keyup( ->
$('#new-stuff').focus()
)
else
$(document).keyup( (e) ->
if e.altKey && e.which == 65
e.preventDefault()
modal.close()
)
当我按下alt + A
时,模态打开,焦点在输入上。但当我再次按alt + A
时,它会再次关注输入,但不会关闭。
!$('#new-stuff').length or $('#new-stuff').is(':hidden')
两者都是false
,但$('#new-stuff').focus()
正在发生。为什么呢?
以及如何使用alt + A
关闭模态?
更新
这是工作代码:
$(document).keydown( (e) ->
if e.altKey && e.which == 65
if $('#new-stuff').is(':visible')
e.preventDefault()
modal.close()
else
e.preventDefault
modal.open(
content: '<input type="text" placeholder="New stuff here!" id="new-stuff"><br /><input type="submit" value="Do stuff!">'
)
).keyup( ->
$('#new-stuff').focus() if $('#new-stuff').is(':visible')
)
答案 0 :(得分:1)
看起来你需要将条件放在事件函数中。像这样:
$(document).keyup( (e) ->
if e.altKey && e.which == 65
if $('#new-stuff:visible)')
# hide it
else
# show it
)