Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用datatable中的按钮单击函数_Javascript_Jquery_Datatables - Fatal编程技术网

Javascript 使用datatable中的按钮单击函数

Javascript 使用datatable中的按钮单击函数,javascript,jquery,datatables,Javascript,Jquery,Datatables,我正在加载一个带有数据表的表。在每一行中,我创建一个按钮来单击,该值会自动插入到opener窗口中的输入中。我使用的功能是: $("button").click(function() { var id = $(this).val(); window.opener.document.getElementById('cliente-nombre').value = id; window.parent.close(); }); 该函数不适用于数据表中加载的按钮。如

我正在加载一个带有数据表的表。在每一行中,我创建一个按钮来单击,该值会自动插入到opener窗口中的输入中。我使用的功能是:

$("button").click(function() {
      var id = $(this).val();
      window.opener.document.getElementById('cliente-nombre').value = id;
      window.parent.close();
});
该函数不适用于数据表中加载的按钮。如果我创建一个加载页面的按钮(而不是在页面完全加载时),它的工作不会有问题

我认为这不起作用,因为它们是在页面完全加载时创建的,

尝试将其包装在一个文件夹中。这将在运行代码之前等待页面加载

$(document).ready(function() {
    $("button").click(function() {
          var id = $(this).val();
          window.opener.document.getElementById('cliente-nombre').value = id;
          window.parent.close();
    });
});

这样,在附加单击处理程序之前,您的按钮将位于DOM上。

当处理页面加载后加载的元素时,请通过将事件处理程序委托给父元素,以确保它们响应单击

委托事件的优点是可以处理来自 以后添加到文档中的子元素。通过 选择一个元素,该元素保证在 已附加委派事件处理程序,您可以使用委派事件 避免频繁附加和删除事件处理程序。这 元素可以是视图中的容器元素 例如,模型视图控制器设计,或记录事件 处理程序希望监视文档中的所有冒泡事件。这个 文档元素在之前的文档头中可用 加载任何其他HTML,因此可以安全地在那里附加事件,而无需 正在等待文档准备就绪

这里我使用
文档
对象:

$(document).on('click', 'button', function() {
  var id = $(this).val();
  window.opener.document.getElementById('cliente-nombre').value = id;
  window.parent.close();
});