0

ajax呼び出しを実行した後に2つのチェックボックスを作成しました。IDを参照して.change()イベントを実行しようとすると、イベントがトリガーされません。何か案は?これが私のコードです:

Ajax呼び出し:

    $.ajax({                        
    url:"../includes/MC.Admin.ajax.php",
    type: "POST",
    data: empupdatedata,
    success: function(empupdate) {              
    var empupdateJson = $.parseJSON(empupdate);

                  $("#empupdateinfo_tbl").html(empupdateJson.updateempinfo);

                $("#empemploymentupdateinfo_tbl").html(empupdateJson.updateempemploymentinfo);


                $('#employee-update').bPopup({
                    modalClose: false
                });

                }
        });

ここでテキストボックスが作成されます。

if($rm5->isbonus == 1 && $rm5->isallowance == 0)
{
    $updateemployeeemploymentinfo .= "<tr><td class = 'tbl_data'>
    Additional Payment</td><td>Bonus <input type = 'checkbox' 
    name = 'isbonus' id = 'uisbonus'> Allowance <input type = 'checkbox' 
    name = 'isallowanece' id = 'uisallowance'></td></tr><tr></tr>"; 
}

これらの2つのチェックボックスのIDを使用して、次のコードを使用して変更イベントをトリガーしたいと思います。

$("#uisbonus").change(function(){
    if($(this).attr("checked"))
    {
        $('#uamountcon').append("<td id = 'uamountcon'><input type = 'text' id = 'uamount ></td>")

    }
    else
    {
         $('#uamountcon').html();
    }
});

$("#uisallowance").change(function(){
    if($(this).attr("checked"))
    {
        $('#uamountcon').append("<td id = 'uamountcon'><input type = 'text' id = 'uamount ></td>")
    }
    else
    {
         $('#uamountcon').html();
    }
});//I placed this code insidethe $(document).ready(function() { });

変更イベントの位置は間違っていますか?イベントはどこに置くべきですか?または何が問題ですか?ありがとう!

4

2 に答える 2

1

ページの読み込み後に追加するため、on()またはdelegate()イベントの委任に使用す​​る必要があります。 on()1.7で追加されましたが、以前のバージョンdelegate()では、イベント委任を使用するための最も効果的な手段です。

$("body").delegate("#uisbonus", "change", function(){ 
...
$("body").delegate("#uisallowance", "change", function(){ 

:のclass代わりに参照する方が良い場合があります。id

$("body").delegate(".uiClassName", "change", function(){ 
于 2012-07-26T16:00:59.750 に答える
0

イベントの委任が最も簡単な修正方法ですが、

$(document).delegate("#uisbonus","change",function(){
    if($(this).attr("checked"))
    {
        $('#uamountcon').append("<td id = 'uamountcon'><input type = 'text' id = 'uamount ></td>")

    }
    else
    {
         $('#uamountcon').html();
    }
});

$(document).delegate("#uisallowance","change",function(){
    if($(this).attr("checked"))
    {
        $('#uamountcon').append("<td id = 'uamountcon'><input type = 'text' id = 'uamount ></td>")
    }
    else
    {
         $('#uamountcon').html();
    }
});
于 2012-07-26T16:00:28.463 に答える