jquery - 如何等待加载了 jquery .load() 函数的 Bootstrap 模式对话框的完全加载

标签 jquery twitter-bootstrap modal-dialog setfocus

我的网站上有几个 Bootstrap 模态,我这样加载它们:

function modal_density(){
    $("#modal-content").load("pages/modals/density_control.php");
    $('#all_modal').modal('show');
}

然后我像这样关闭它们:

function close_modal(){
    $("#modal-content").empty();
    $('#all_modal').modal('hide');
}

我想将焦点放在模态的输入上,但我认为当我尝试这样做时模态未完全加载:

function modal_density(){
    $("#modal-content").load("pages/modals/density_control.php");
    $('#all_modal').modal('show');
    $("#element").focus();//<----Added part
}

如何等待我的元素完全加载?


[编辑]:我试过了,但没用:

function modal_controle_densite_valid(){
    $("#modal-content").load("pages/modals/controle_densite_validation.php", function() {
        $('#all_modal').modal('show');
        $("#codebarre").focus();
    });
}

但是下面的代码在 2 秒后开始工作:

function modal_controle_densite_valid(){
    $("#modal-content").load("pages/modals/controle_densite_validation.php", function() {
        $('#all_modal').modal('show');
        setTimeout(function() {$("#codebarre").focus()}, 2000);
        //$("#codebarre").focus();
    });
}

最佳答案

load() 方法有第二个参数,它允许您提供一个函数,该函数应在 AJAX 请求完成时执行。试试这个:

function modal_density(){
    $("#modal-content").load("pages/modals/density_control.php", function() {
        $('#all_modal').modal('show').on('shown', function() {
            $("#codebarre").focus(); 
        });
    });
}

关于jquery - 如何等待加载了 jquery .load() 函数的 Bootstrap 模式对话框的完全加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27246422/

相关文章:

javascript - 将mysql数据放入var数组中

jquery - 如何在执行脚本元素之前删除它们?

javascript - 如何在成功提交后关闭模式框并在表单提交时有条件地打开第二个模式

AngularJS:将数据从列表传递给模态

javascript - 具有延迟加载图像的数据表的工作示例

jquery - 来自 Safari 扩展的注入(inject)脚本中的 AJAX

html - 在 ie9 中 Bootstrap 空白空间

javascript - Jquery下拉菜单垂直

Cocoa - 模态窗口,背后有动画 NSOpenGLView

html - 模态在移动浏览器上的显示方式不同