nicEdit динамические экземпляры, связывающие 2 функции
Я прочитал все ответы на эти вопросы, и ни один из них не отвечает моим потребностям.
Кроме того, я уже задавал "почти похожий" вопрос о связывании динамически создаваемых элементов. Я также применил эти ответы (которые работали над другими сценариями), но он не работает над этим.
Объяснение:
У меня есть форма, где я даю возможность добавить новую строку в мою таблицу (строка с несколькими ячейками), одна из этих ячеек - текстовая область. То, что я хочу сделать, это иметь возможность добавлять nicedit в эти текстовые области, созданные динамически.
Создание нового ряда и ячеек:
var index = 2;
function myCreateFunction() {
var table = document.getElementById("myTable");
var row = table.insertRow(-1);
var cell1 = row.insertCell(0);
var cell2 = row.insertCell(1);
var cell3 = row.insertCell(2);
var cell4 = row.insertCell(3);
var cell5 = row.insertCell(4);
cell1.innerHTML = "<textarea type='text' id='des" + index + "' name='des" + index + "' placeholder='' rows='1' class='form-control input-sm' value=''/></textarea>";
cell1.vAlign = "top";
cell2.innerHTML = "<input type='text' id='qu" + index + "' name='qu" + index + "' placeholder='' class='form-control input-sm qu' value=''/>";
cell2.vAlign = "top";
cell3.innerHTML = "<input type='text' id='pu" + index + "' name='pu" + index + "' placeholder='' class='form-control input-sm pu' value=''/>";
cell3.vAlign = "top";
cell4.innerHTML = "<input type='text' id='rl" + index + "' name='rl" + index + "' placeholder='' class='form-control input-sm rl' value=''/>";
cell4.vAlign = "top";
cell5.innerHTML = "<input type='text' id='tl" + index + "' name='tl" + index + "' placeholder='' class='form-control input-sm total' value=''/>";
cell5.vAlign = "top";
index++;
return false;
Каждый клик добавляет строку и текстовое поле находится на первой ячейке
Теперь nicedit с примерами:
bkLib.onDomLoaded(function() {
var myNicEditor = new nicEditor();
myNicEditor.setPanel('myNicPanel');
myNicEditor.addInstance('des1');
myNicEditor.addInstance('des2');
myNicEditor.addInstance('des3');
myNicEditor.addInstance('des4');
myNicEditor.addInstance('des5');
myNicEditor.addInstance('des6');
myNicEditor.addInstance('des7');
myNicEditor.addInstance('des8');
myNicEditor.addInstance('des9');
myNicEditor.addInstance('des10');
});
На странице предварительно загружен только экземпляр "des1", и nicedit работает отлично. Если я нажму кнопку add row, будет создана строка с идентификатором и классом "des2", но nicedit к нему не относится.
Это то, что я пробовал, пожалуйста, не смейтесь, я все еще ограничен в понимании javascript:
Я помещаю nicedit загрузку в функцию:
function addnicedit {
//nicedit code here
}
$("#myTable").on("change", addnicedit);
Я думал о создании этого кода nicEdit каждый раз, когда #mytable получает модификацию (добавлена новая строка), и запускаю функцию nicedit каждый раз, когда создается новая строка. Но здесь nicedit даже не загружается ни разу.
Я должен отметить, что панель nicEdit загружается не в каждой текстовой области, я использую этот пример: http://nicedit.com/demos.php?demo=4 это встроенный редактор, где панель загружается только ОДИН РАЗ и это должно относиться ко всем текстовым областям.
Я хотел бы помочь с этим, это мой код "функция", которая написана неправильно, или это просто невозможно с nicEdit и способ его загрузки. Я вижу также элементы onDomLoaded в коде... есть ли что-то реализованное?
Любая помощь приветствуется.
Спасибо за прочтение:)
Обновить
Я пытался повторно инициализировать функцию nicedit каждый раз, когда строка создается следующим образом:
у функции nicedit нет имен, поэтому я дал ей имя (попробовал)
bkLib.onDomLoaded(function initNicEdit() {
var myNicEditor = new nicEditor();
myNicEditor.setPanel('myNicPanel');
// instances
});
И перезапустите функцию initNicEdit() в конце моей функции, которая добавляет строку, подобную этой:
function myCreateFunction() {
//function here
index++;
initNicEdit();
return false;
Но я не вижу эффекта, так как страница обновляется. Я действительно вернул ложь; в конце моей функции, также в initNicEdit(); и на моей кнопке, но она все еще обновляет.
Я буду продолжать пытаться