复制数据表中的行并在前置输入元素后刷新DOM

时间:2018-04-23 23:08:53

标签: javascript jquery datatable

我有2个数据表表。

当我双击一行时

pagehandle.read()

它将所有原始行数据复制到命运表。

pagehandle.read()

好的,到目前为止一切都很好......我可以将“data-”。attr()插入到行中,并在其中使用JQuery。

现在我需要在两个特定的tds上附加一个“输入”...这是成功的:

//// Mov table 1 to 0
$('#DataTable1 tbody').on('dblclick', 'tr', function (event) {

我使用普通的sintax选择行并添加所需的html代码。

//create array
  var data = [];
//pushes data to array
  $(this).find('td').each(function () { data.push($(this).text()); });
//add row to destiny table
  dt.row.add(data);
//draw table
  dt.draw(false);

瞧......一切都在应该的地方......但是,当我尝试在新插入的输入上调用javascript / Jquery时,它根本就什么都不做。我认为因为它在.on()内部,它会在prepend()之后刷新DOM,但它看起来并不像他那样......

我该怎么做?有没有办法将此输入与“数据”一起插入?如何刷新DOM以便我可以在Javascript / Jquery中使用它们的值?

P.S。我创建了一个函数来迭代每个输入,它们在DOm中,并且对函数可见:

var input_pos = '<input type="number" class="edit-items" max="'+xpto+'" data-proj-signal="1"/>';

var input_neg = '<input type="number" class="edit-items" max="'+xpto2+'" data-proj-signal="-1"/>';

当我开始在预先填充的输入中插入值时,当触发以下内容时会发生任何事情(当输入不是那些预先填充时触发):

    $(“。edit-items”)。on(“input”,function(e){ // 做东西 }

非常感谢

1 个答案:

答案 0 :(得分:0)

第一个on()方法冒泡时出现问题。

//// Mov table 1 to 0
$('#DataTable1 tbody').on('dblclick', 'tr', function (event) {

只有泡泡到“#DataTable1 tbody”。作为另一个表中的新行,监听器(第二个.on())

$(".edit-items").on("input", function (e) { // do stuff }

不知道它添加了一个新元素。

只需将一个公共HTML父级放到两个表中,问题就解决了。在这个例子中,只需将“body”添加到第一个.on()就可以了。

$('body #projDataTable1 tbody').on('dblclick', 'tr', function (event) {

现在直到body元素才知道prepend,所以第二个.on()被告知它。