javascript 函数单击datatable中的按钮

ohtdti5x  于 2023-04-19  发布在  Java
关注(0)|答案(2)|浏览(132)

我正在加载一个带有DataTables的表。在每一行中,我创建一个按钮来单击,值会自动插入到打开器窗口中的输入中。我使用的函数是这样的:

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

如果我创建了一个与页面一起加载的按钮(而不是当页面完全加载时),它就可以正常工作。
我想这不起作用,因为它们是在页面完全加载时创建的。

xxslljrj

xxslljrj1#

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

委托事件的优点是可以处理后续添加到文档中的后代元素中的事件。通过挑选一个保证在附加委托事件处理程序时存在的元素,您可以使用委托事件来避免频繁附加和删除事件处理程序的需要。此元素可以是模型-视图-例如,如果事件处理程序要监视文档中的所有冒泡事件,则使用控制器设计或文档。在加载任何其他HTML之前,文档元素在文档的头部可用,因此在那里附加事件是安全的,而无需等待文档准备就绪。

这里我使用document对象:

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

bwitn5fc2#

尝试将其 Package 在$(document).ready中。这将在运行代码之前等待页面加载。

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

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

相关问题