我正在加载一个包含DataTables的表。在每一行中,我创建了一个单击按钮,该值自动插入到开启窗口的输入中。我使用的功能是:
$("button").click(function() {
var id = $(this).val();
window.opener.document.getElementById('cliente-nombre').value = id;
window.parent.close();
});
该功能不适用于数据表中加载的按钮。如果我创建一个加载页面的按钮(不是在页面完全加载时),它的工作没有问题。
我认为这不起作用,因为它们是在页面完全加载时创建的,
答案 0 :(得分:0)
尝试将其包裹在$(document).ready
中。这将在运行代码之前等待页面加载。
$(document).ready(function() {
$("button").click(function() {
var id = $(this).val();
window.opener.document.getElementById('cliente-nombre').value = id;
window.parent.close();
});
});
这样,在附加点击处理程序之前,您的按钮将位于DOM上。
答案 1 :(得分:0)
在处理页面加载后加载的元素时,通过on()将事件处理程序委托给父元素,以确保它们响应点击。
委派活动的优势在于他们可以处理来自的活动 稍后添加到文档中的后代元素。通过 选择一个保证在当时存在的元素 委托事件处理程序附加,您可以使用委托事件 避免频繁附加和删除事件处理程序的需要。这个 element可以是a中视图的容器元素 例如,模型 - 视图 - 控制器设计,或者如果事件是文档 handler希望监视文档中的所有冒泡事件。该 文档元素在之前的文档头部中可用 加载任何其他HTML,因此可以安全地在那里附加事件 等待文件准备好。
我在这里使用document
对象:
$(document).on('click', 'button', function() {
var id = $(this).val();
window.opener.document.getElementById('cliente-nombre').value = id;
window.parent.close();
});