Я пытаюсь привязать экземпляр плагина Tabulator к динамически созданному элементу <div>
, но безрезультатно. У меня нет проблем с привязкой Tabulator к элементам stati c, созданным с помощью события загрузки страницы; однако мне нужно иметь возможность динамически создавать новые <div>
элементы, содержащие таблицы Tabulator.
HTML для заполнителя <div>
и код для динамически создаваемого <div>
:
HTML:
<div id="CrewLeaderDiv" name="CrewLeader"></div>
JavaScript для создания новой коллекции вложенных <div>
элементов:
$("#CrewLeader").change(function (element) {
var selOption = $("#CrewLeader > option:selected");
window.leaderID = selOption.val();
var crewLeaderName = selOption.text()
// Create the Crew Leader Time Card.
var sHtml = "<div class='card' style='margin: 10px;'>";
sHtml += "<div class='card-header col-sm-12 roundBorder' style='padding:2px;'>";
sHtml += "<span class='col-sm-3 ' style='float:left; font-size:16px; text-align:right;'>Crew Leader: </span>";
sHtml += "<input id='CrewLeaderName' disabled class='col-sm-6 roundBorder' style='float:left; font-size:16px; font-weight:bold; color:darkred; height:100%; width:100%; text-align:center;' value='" + crewLeaderName + "' />";
sHtml += "</div>";
sHtml += "<div class='card-body col-sm-12 roundBorder' style='padding:4px; font-size:16px;'>Time Card Entries</div>";
sHtml += "<div class='col-sm-12 roundBorder' id='CrewLeaderTable' style='font-size:12px;'></div>";
sHtml += "<div class='btnCrewLeader'><button id='btnCrewLeader' class='btn btn-secondary' type='button'>Click to Enter Time</button></div>";
sHtml += "</div>";
$("#CrewLeaderDiv").html(sHtml);
});
Строка s Html передается заполнителю #CrewLeaderDiv для создания карты Bootstrap и заполнителя (#CrewLeaderTable ) для таблицы Tabulator.
Обработчик события click для кнопки #btnCrewLeader управляет созданием Tabulator следующим образом:
$(document).on('click', '#btnCrewLeader', function () {
//Remove the button.....
$("div").remove(".btnCrewLeader");
//Instantiate the Tabulator editable table
$("#CrewLeaderTable").tabulator({
height: "100%",
layout: "fitColumns",
//responsiveLayout: "hide",
data: tabledata,
columns: [
{ title: "Phase", field: "phase", hozAlign: "center", editor: "select" },
{ title: "Start Time", field: "start", hozAlign: "center", sorter: "time", editor: timeEditor },
{ title: "Finish Time", field: "finish", hozAlign: "center", sorter: "time", editor: timeEditor }
]
});
У меня есть пара строк данных, хранящихся в " datatable "для тестирования.
Нажатие на кнопку запускает обработчик событий, но экземпляр Tabulator не создается.
Как уже отмечалось, я могу создавать таблицы Tabulator на stati * 1034. * элементы, но мне действительно нужно иметь возможность связываться с динамически созданными элементами. Я просмотрел документацию Табулятора, но не нашел ссылки на эту проблему.
Любая помощь будет принята с благодарностью.