Функция jquery не запускается, когда я использую datatable.fnAddData для добавления строки HTML - PullRequest
0 голосов
/ 01 ноября 2018

Функция jquery не срабатывает, когда я использую dataTable.fnAddData для добавления строки HTML.

Итак, у меня есть функция populateDataTable(), есть два столбца, которые мне нужны для рендеринга значка вместо данных из JSON. Поэтому я попытался добавить строку HTML, включая классы для элемента в fnAddData(). Но почему-то не срабатывает событие нажатия на иконку.

  function populateDataTable(data) {
    $("#customerTable").DataTable().clear();
    var length = Object.keys(data).length;
    for(var i = 1; i < length+1; i++) {      

    var index = i - 1;
    var name = data[index].name;
    var queue = data[index].queue;
    var expire = data[index].expire;

    $('#customerTable').dataTable().fnAddData( [
        i,
        name,
        queue,
        '<td id="tb-manage-key" class="tb-manage-key"><div class="tb-btn manage-key-btn switch-view" data-hide="manageCustomers" data-title="@Resources.ManageKeys" data-target="manageKeys"><span></span></div></td>',
        '<td class="tb-manage-subs"><div class="tb-btn manage-subs-btn switch-view" data-hide="manageCustomers" data-title="@Resources.ManageSubscriptions" data-target="manageSubscriptions"><span></span></div></td>',
        expire,
        name
    ]);
}}



$('.tb-btn.switch-view').on('click', function(e) {
  e.preventDefault();
  switchView(this);
 console.log('Testing'); //not firing
});

Значок показывает, но не запускает событие щелчка, как это должно быть. Приложенный ниже показывает, что мы видим, что он добавляет div, как и ожидалось. enter image description here


* Решения 1016 *

Добавление события click в пределах работ populateDataTable().

$('#customerTable tbody').on('click', '.tb-btn.switch-view', function() {
    switchView(this);
});

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете попробовать другой синтаксис для прослушивания события щелчка ...

$('td').on('click', '.tb-btn.switch-view', function(e) {
  e.preventDefault();
  switchView(this);
 console.log('Testing'); //not firing
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...