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呼び出しを2回行うことができません。

私は.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 に答える