Селектор JQuery в DataTable работает только после предупреждения - PullRequest
0 голосов
/ 05 мая 2018

У меня есть следующий (упрощенный) код JQuery:

$(document).ready(function() {

    var table = $('#bot_table').DataTable( {
        "ajax": "/static/Dashboard/pos.txt",
        "paging":   false,
        "searching": false,
        "columns": [
            { "data": "name_of_instance"},
            { "data": "bt" },
            { "data": "updated" },
            { "data": "pos" },
            { "data": "l_s" },
            { "data": "l_t" },
            { "data": "p_l" },
            {
                "className":      'details-control',
                "orderable":      false,
                "data":           null,
                "defaultContent": ''
            }
        ],
    } );


 $("td").html(function(){
    var elem =  $(this).html().replace("DELETE INSTANCE", "<button id = \"gen_del_instance\" type=\"button\" class=\"btn\"><span class=\"glyphicon glyphicon-trash\"></span> <u>DELETE INSTANCE</u></button>")
    return elem
});

Предполагается, что после загрузки DataTable селектор ниже найдет все строки и заменит их на кнопку.

Это не работает, хотя. Это работает только если я предшествую alert() перед $("td") и т. Д. селектор.

Насколько я понимаю, DOM не обновляется после вызова DataTable() и принудительно обновляется после alert().

Есть ли способ добиться желаемого поведения?

1 Ответ

0 голосов
/ 05 мая 2018

Решение:

var table = $('#bot_table').DataTable( {
        "ajax": "/static/Dashboard/positions.txt",
        "paging":   false,
        "searching": false,
        "columns": [
            { "data": "name_of_instance",
               "render": function ( data, type, row ) {
                var new_data = data.replace("DELETE INSTANCE", "<button id = \"gen_del_instance\" type=\"button\" class=\"btn\"><span class=\"glyphicon glyphicon-trash\"></span> <u>DELETE INSTANCE</u></button>");
                return new_data;
            }},
            { "data": "bot" },
            { "data": "updated" },
            { "data": "position" },
            { "data": "l_s" },
            { "data": "l_t" },
            { "data": "p_l" },
            {
                "className":      'details-control',
                "orderable":      false,
                "data":           null,
                "defaultContent": ''
            }
        ],
    } );

Спасибо @ charlietfl

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...