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

时间:2017-08-29 07:25:13

标签: 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});
});

我最初有上面的代码,但需要能够将事件附加到动态元素,所以我改为以下代码:

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

当我在另一个问题(In jQuery, how to attach events to dynamic html elements?)中读到您可以使用该格式将事件附加到动态元素时,我这样做了。为了澄清,此代码继续使用初始页面,但在使用搜索过滤器后失败。

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

$('#search').on('input propertychange paste', function() {
    var string = $('#search').val();
    $("#employeelist").load("filter.php", {'data': datastring, 'search': string});
});

但是,当从那个php文件创建这些元素时,我无法通过我的jquery访问这些元素,我不确定我做错了什么。我看到其他大约4个问题,答案是在函数上使用jquery,我试过没有成功。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码

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