0
jQuery(function ($) {
    $('input.adud').on('click', function() {
        var thisdiv = $(this).parents('div').attr("id");
        var thisform = $(this).parents('form').attr("id");
        var thistable = $(this).parents('form').attr("class");
        var thisbutton = $(this).attr("id");
        var stuff = new Array();
        stuff = $("#"+thisform+" :input");
        stuff.push({name:"table", value:thistable});
        stuff.push({name:"button", value:thisbutton});

        $.ajax({
            url: "<?php echo site_url('clients/ajax/modifyclients');?>",
            type: 'POST',
            data: stuff,
            success: function(msg) {
                $('#'+thisdiv).html(msg);
            }
        });

        return false;
    });
});

我有一个包含多组表单的页面。每个集合都由一个唯一的div id.

每组都有一个用于在顶部输入数据的表单,下面是填充了相关现有数据的表单。

我使用 jQuery 和 AJAX 将数据输入或更新到数据库中。php AJAX 文件返回已操作的完整 html 表单集。

问题是返回的 html 上的按钮不起作用,换句话说,无法进行第二次 AJAX 调用。

我相信我必须使用.on()来解决这个问题,但我无法完全掌握它是如何完成的/或如何设置 jQuery 函数。

我知道这个问题已经被问了 100 次,但我想找到适合您特定问题的答案是关键:-)

4

1 回答 1

2

最简单的 :

$(document).on('click', 'input.adud', function() {

更好的 :

找到一个持久元素,其中所有动态添加的输入都在其中并执行

$(thisElement).on('click', 'input.adud', function() {

使用on 时,您必须将其应用于尚未存在且稍后仍将存在的集合,并提供可以单击的元素(可能稍后出现)的选择器。

于 2012-09-23T15:50:32.557 回答