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(); и на моей кнопке, но она все еще обновляет.

Я буду продолжать пытаться

0 ответов

Другие вопросы по тегам