我正在加载一个带有DataTables的表。在每一行中,我创建一个按钮来单击,值会自动插入到打开器窗口中的输入中。我使用的函数是这样的:
$("button").click(function() {
var id = $(this).val();
window.opener.document.getElementById('cliente-nombre').value = id;
window.parent.close();
});
如果我创建了一个与页面一起加载的按钮(而不是当页面完全加载时),它就可以正常工作。
我想这不起作用,因为它们是在页面完全加载时创建的。
2条答案
按热度按时间xxslljrj1#
当处理页面加载后加载的元素时,通过on()将事件处理程序委托给父元素,以确保它们响应单击。
委托事件的优点是可以处理后续添加到文档中的后代元素中的事件。通过挑选一个保证在附加委托事件处理程序时存在的元素,您可以使用委托事件来避免频繁附加和删除事件处理程序的需要。此元素可以是模型-视图-例如,如果事件处理程序要监视文档中的所有冒泡事件,则使用控制器设计或文档。在加载任何其他HTML之前,文档元素在文档的头部可用,因此在那里附加事件是安全的,而无需等待文档准备就绪。
这里我使用
document
对象:bwitn5fc2#
尝试将其 Package 在
$(document).ready
中。这将在运行代码之前等待页面加载。这样,在附加click处理程序之前,按钮将位于DOM上。