我有这样的问题 - 我需要自动对焦Twitter的引导模式里面的一些元素(它显示后)。 棘手的部分是在这里 - 这个模式的内容是使用“数据的远程”(jQuery.load方法)从单独的HTML文件中加载,所以
$(document).on('shown', ".modal", function() {
$('[autofocus]', this).focus();
});
只有当模式是之前加载工作。
现在的问题是 - 如何使自动对焦工作在第一时间模式的负载?
我有这样的问题 - 我需要自动对焦Twitter的引导模式里面的一些元素(它显示后)。 棘手的部分是在这里 - 这个模式的内容是使用“数据的远程”(jQuery.load方法)从单独的HTML文件中加载,所以
$(document).on('shown', ".modal", function() {
$('[autofocus]', this).focus();
});
只有当模式是之前加载工作。
现在的问题是 - 如何使自动对焦工作在第一时间模式的负载?
我使用的引导3.0(希望,这一点也适用3.1以及)。
我们不得不使用tabindex="-1"
,因为它允许ESC键关闭模式。
所以,我是能够解决本次发行采用:
// Every time a modal is shown, if it has an autofocus element, focus on it.
$('.modal').on('shown.bs.modal', function() {
$(this).find('[autofocus]').focus();
});
尝试删除的tabindex =“ - 1”,它工作正常。
<div class="modal fade" id="modalID" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal fade" id="modalID" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
希望这可以帮助!
我不能让@ NC的解决方案在我的应用程序工作。 它没有看到,是后来添加情态动词。 这个工作对我来说,虽然
$(document).on('shown.bs.modal', '.modal', function() {
$(this).find('[autofocus]').focus();
});
弗兰克方所指出的,你应该,如果你使用的是引导一个新版本,不依赖于使用autofocus
HTML属性。
$('#myModal').on('shown.bs.modal', function () {
// get the locator for an input in your modal. Here I'm focusing on
// the element with the id of myInput
$('#myInput').focus()
})
:下面是摘自http://getbootstrap.com/javascript/#modals
由于HTML5是如何定义它的语义,将
autofocus
HTML属性在引导情态动词没有影响。 为了达到同样的效果,用一些自定义JavaScript:$('#myModal').on('shown.bs.modal', function () { $('#myInput').focus() })
你必须与输入autofocus
属性你想集中显示在引导模式时。
是您的情态标记可被载入JavaScript的时候?
在所有注册的事件处理程序.modal
的元素shown.bs.modal
事件
$('.modal').on('shown.bs.modal', function() {
$(this).find('[autofocus]').focus();
});
是您的情态标记动态生成的?
对注册在整个文档的事件处理程序shown.bs.modal
事件。
$(document).on('shown.bs.modal', '.modal', function () {
$(this).find('[autofocus]').focus();
});