Javascript 将jquery事件附加到动态创建的元素(jquery加载php文件)

Javascript 将jquery事件附加到动态创建的元素(jquery加载php文件),javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,我有一个php员工目录网站,在一个表中列出我们的所有员工(连接到mysql),您可以单击每个员工在另一个div中打开他们的详细信息 $('.emptab').click(function(event) { var status = $(this).attr('id'); $("#empview").load("employee.php", {'data': datastring, 'current': status}); }); 我最初有上述代码,但需要能够将事件附加到动态元素

我有一个php员工目录网站,在一个表中列出我们的所有员工(连接到mysql),您可以单击每个员工在另一个div中打开他们的详细信息

$('.emptab').click(function(event) {
    var status = $(this).attr('id');
    $("#empview").load("employee.php", {'data': datastring, 'current': status});
});
我最初有上述代码,但需要能够将事件附加到动态元素,因此我改为以下代码:

$('tbody').on('click', 'tr.emptab', function() {
    var status = $(this).attr('id');
    $("#employeedetails").load("employee.php", {'data': datastring, 'current': status});
});
当我在另一个问题()中读到可以使用这种格式将事件附加到动态元素时,我就是这样做的。只是澄清一下,这段代码继续处理初始页面,但在使用搜索过滤器后失败

我的动态元素来自我拥有的过滤器/搜索功能,该功能将根据搜索文本框更改员工列表,搜索文本框将根据我创建的filter.php文档更改员工列表

$('#search').on('input propertychange paste', function() {
    var string = $('#search').val();
    $("#employeelist").load("filter.php", {'data': datastring, 'search': string});
});
但是,当这些元素从php文件创建时,我无法通过jquery访问这些元素,我不确定我做错了什么。我还看到了另外4个问题,其中的答案是使用jquery on函数,我尝试过,但没有成功


谢谢您的时间。

您可以为此使用以下代码

$(document).on('click', '.emptab', function() {
    var status = $(this).attr('id');
    $("#employeedetails").load("employee.php", {'data': datastring, 'current': status});
});

您可以为此使用以下代码

$(document).on('click', '.emptab', function() {
    var status = $(this).attr('id');
    $("#employeedetails").load("employee.php", {'data': datastring, 'current': status});
});

嘿,谢谢,成功了。只是想知道,为什么它必须是文档,而不是像body或table之类的东西呢?它的事件委托,允许我们将单个事件侦听器附加到父元素,将为所有匹配选择器的子元素触发,无论这些子元素现在存在还是将来添加。可能是您的tbody元素动态创建的,这就是为什么它是working@user163362不必这样做,任何已经存在的未来元素的祖先元素都可以。@CBroe OP正在使用
tbody
元素。也许是因为它产生了活力。谢谢,这很有效。只是想知道,为什么它必须是文档,而不是像body或table之类的东西呢?它的事件委托,允许我们将单个事件侦听器附加到父元素,将为所有匹配选择器的子元素触发,无论这些子元素现在存在还是将来添加。可能是您的tbody元素动态创建的,这就是为什么它是working@user163362不必这样做,任何已经存在的未来元素的祖先元素都可以。@CBroe OP正在使用
tbody
元素。可能是动态生成的