Bootstrap 当我在 escape keydown 上使用 modal('toggle') 时,Modal 不切换
Bootstrap Modal doesn't toggle when I modal('toggle') on escape keydown
我有一个功能,可以通过按退出键打开和关闭 bootstrap 模态。但是,toggle
函数只显示模态。我必须手动单击退出按钮才能将其隐藏。
$(document).keyup(function(e) {
if (e.keyCode == 27) {
$("#myModal").modal('toggle');
}
});
我知道在 JQuery 中,toggle()
事件显示然后隐藏一个元素。我原以为模式会在我按下转义键后消失。
HTML
<div class="modal bs-example-modal-lg" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-content">
<div class="modal-header">
<ul class="list-inline">
<li><h4 class="modal-title">Title</h4></li>
<li class="list-right"><button id="new">New</button></li>
<li><button id="close"><span>×</span></button></li>
</ul>
</div>
</div>
</div>
点击按钮隐藏此模式
$("#close").click(function() {
$("#myModal").hide();
});
试试这个。
$("#myModal").modal('show');
而不是
$("#myModal").modal('toggle');
这没有按预期工作的原因是模态插件已经为 escape keydown event.
定义了功能
您可以覆盖此功能,但它会很混乱,您的最终用户不会期望此行为。我建议您在另一个键上使用它并向您的用户解释。
类似于:
//enable tooltip for your message about toggling the modal
$(function () {
$('[data-toggle="tooltip"]').tooltip();
});
//toggle the modal on tilde
$(document).keyup(function(e) {
if (e.keyCode == 192) {
$("#myModal").modal('toggle');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet"/>
<div class="modal bs-example-modal-lg" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-content">
<div class="modal-header">
<ul class="list-inline">
<li><h4 class="modal-title">Title</h4></li>
<li class="list-right"><button id="new">New</button></li>
<li><button id="close"><span>×</span></button></li>
</ul>
</div>
</div>
</div>
<button type='button' class='btn btn-default' data-toggle='modal' data-target='#myModal'>click to open</button>
<span class='glyphicon glyphicon-info-sign text-info' data-toggle="tooltip" data-placement="right" title="Press the tilde key to toggle"></span>
注意:注意如果你按`然后Esc,它会隐藏模态。
我有一个功能,可以通过按退出键打开和关闭 bootstrap 模态。但是,toggle
函数只显示模态。我必须手动单击退出按钮才能将其隐藏。
$(document).keyup(function(e) {
if (e.keyCode == 27) {
$("#myModal").modal('toggle');
}
});
我知道在 JQuery 中,toggle()
事件显示然后隐藏一个元素。我原以为模式会在我按下转义键后消失。
HTML
<div class="modal bs-example-modal-lg" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-content">
<div class="modal-header">
<ul class="list-inline">
<li><h4 class="modal-title">Title</h4></li>
<li class="list-right"><button id="new">New</button></li>
<li><button id="close"><span>×</span></button></li>
</ul>
</div>
</div>
</div>
点击按钮隐藏此模式
$("#close").click(function() {
$("#myModal").hide();
});
试试这个。
$("#myModal").modal('show');
而不是
$("#myModal").modal('toggle');
这没有按预期工作的原因是模态插件已经为 escape keydown event.
定义了功能您可以覆盖此功能,但它会很混乱,您的最终用户不会期望此行为。我建议您在另一个键上使用它并向您的用户解释。
类似于:
//enable tooltip for your message about toggling the modal
$(function () {
$('[data-toggle="tooltip"]').tooltip();
});
//toggle the modal on tilde
$(document).keyup(function(e) {
if (e.keyCode == 192) {
$("#myModal").modal('toggle');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet"/>
<div class="modal bs-example-modal-lg" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-content">
<div class="modal-header">
<ul class="list-inline">
<li><h4 class="modal-title">Title</h4></li>
<li class="list-right"><button id="new">New</button></li>
<li><button id="close"><span>×</span></button></li>
</ul>
</div>
</div>
</div>
<button type='button' class='btn btn-default' data-toggle='modal' data-target='#myModal'>click to open</button>
<span class='glyphicon glyphicon-info-sign text-info' data-toggle="tooltip" data-placement="right" title="Press the tilde key to toggle"></span>
注意:注意如果你按`然后Esc,它会隐藏模态。