Bootstrap-Table:渲染字段的延迟

时间:2017-08-07 18:51:29

标签: bootstrap-table

问题解答 - 需要检查load-success.bs.table以等待表格完全加载 wait till bootstrapTable is fully loaded before doing something

我对Bootstrap-Table有一个奇怪的问题。我按如下方式渲染它,然后我需要将一些jQuery处理程序附加到生成的字段。

function createTable(){
    $('#myTable').bootstrapTable('refresh', {
        url: 'loadRequests'
    });

    // After the construction of the Bootstrap-Table, the dynamically-rendered fields (e.g. checkboxes) are now available
    // Attach a handler to de-select the 'All' checkbox at the top if an individual checkbox is unchecked

    $('.requestor_checkbox').on('click', function(e) {
        if (!$(this).is(':checked')) {
            //de-select the All checkbox at the top
            $('#ckbCheckAll').prop('checked', false);
        }
    }); 

}

Bootstrap-Table(通过数据格式化程序)生成的字段之一是CSS样式&{39; requestor_checkbox'的复选框。它发生在这里,请注意将输出单个复选框的数据格式化程序;标题将包含'全部'复选框:

    <th class="numeric" data-formatter="checkboxFormatter">
            <input type="checkbox" name="ckbCheckAll" id="ckbCheckAll" class="btn btn-primary" value="Select all">
    </th>

Data-Formatter的JS处理程序

function checkboxFormatter(id, row, index) {
        return '<input type="checkbox" class="requestor_checkbox checkBoxClass" value="' + row.id + '">';

}

正如您在代码的顶部看到的,我需要将jQuery事件处理程序附加到刚生成的复选框。奇怪的是,有一个延迟,并且找不到复选框。

但是如果我将事件活页夹设置为在超时后1秒后执行,那么它确实有效。以下工作:

// 1. Render Bootstrap-Table
    $('#myTable').bootstrapTable('refresh', {
        url: 'loaRequests?requestId=' + requestId
    });

// 2. 1-SEC DELAY: After the construction of the Bootstrap-Table, the dynamically-rendered fields (e.g. checkboxes) are now available
    // Attach a handler to de-select the 'All' checkbox at the top if an individual checkbox is unchecked

    setTimeout(function (){

        $('.requestor_checkbox').on('click', function(e) {
            if (!$(this).is(':checked')) {
                //de-select the All checkbox at the top
                $('#ckbCheckAll').prop('checked', false);
            }
        }); 

}, 1000); 

0 个答案:

没有答案