nicEdit动态实例绑定2个函数

时间:2015-01-19 12:53:56

标签: javascript html nicedit

我已经阅读了这些问题的所有答案,但没有一个能满足我的需求。

此外,我已经问过一个关于动态创建元素绑定的“几乎相似”的问题。我也应用了这些答案(适用于其他脚本),但它不适用于此。

说明:

我有一个表单,我可以在表格中添加一个新行(包含多个单元格的行),其中一个单元格是textarea。我想要做的是能够将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;

每个clic添加一行,textarea位于第一个单元格

现在是带有实例的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工作正常,如果我clic添加行,它将创建一个id为“des2”的行,但是nicedit不适用于它。

这是我试过的,请不要笑,我仍然有限的理解javascript:

我把nicedit加载到函数中:

function addnicedit {

//nicedit code here

}
$("#myTable").on("change", addnicedit);

每当#mytable获得修改(添加新行)并在每次创建新行时运行nicedit函数时,我都会考虑生成此nicEdit代码。但是在这里,nicedit甚至没有加载一次。

我应该提到nicEdit Panel没有加载到每个文本区域,我使用这个例子:http://nicedit.com/demos.php?demo=4它是内联编辑器,我只有面板加载ONCE它应该适用于所有textareas

我希望得到一些帮助,是我的代码'函数'没有正确编写,或者只是不可能使用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 个答案:

没有答案