Php Jquery.change()事件问题

Php Jquery.change()事件问题,php,jquery,events,checkbox,Php,Jquery,Events,Checkbox,在执行ajax调用之后,我构建了两个复选框。当我尝试引用他们的ID来执行.change()事件时,该事件不会触发。有什么想法吗?这是我的密码: Ajax调用: $.ajax({ url:"../includes/MC.Admin.ajax.php", type: "POST", data: empupdatedata, success: function(empupdate) {

在执行ajax调用之后,我构建了两个复选框。当我尝试引用他们的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>"; 
}
if($rm5->isbonus==1&&$rm5->isallowance==0)
{
$updateemployeeemploymentinfo.=”
额外工资奖金津贴”;
}
我想使用这两个复选框的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() { });
$(“#UISPONUS”).change(函数(){
if($(this.attr(“选中”))
{
$('uamountcon')。追加(“”)
}
其他的
{
$('#uamountcon').html();
}
});//我将此代码放在$(document).ready(function(){})中;

变更事件的位置是否错误?我应该把活动放在哪里?或者问题出在哪里?谢谢

事件委派是最简单的解决方法

$(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();
    }
});
$(document).delegate(“#uisbonus”,“change”,function()){
if($(this.attr(“选中”))
{
$('uamountcon')。追加(“”)
}
其他的
{
$('#uamountcon').html();
}
});

由于您是在页面加载后添加它们的,因此您必须使用或进行事件委派
on()
是在1.7中添加的,但是,对于早期版本,
delegate()
是使用事件委派的最有效方法

$("body").delegate("#uisbonus", "change", function(){ 
...
$("body").delegate("#uisallowance", "change", function(){ 
最好是引用
类而不是
id

$("body").delegate(".uiClassName", "change", function(){ 

控制台中是否有错误?您希望它在什么时候启动?在将元素添加到页面后(在ajax成功中),直接将更改事件绑定移动到,或者使用委派语法使用
.delegate
.on
绑定事件。您的问题缺少关于何时尝试绑定处理程序的信息。可能是在实际插入元素之前进行了绑定。您可能想看看jquerys live()方法或其后续方法。您还可以确认
id
是唯一的吗?如果有多个元素具有相同的
id
,我确信jQuery将忽略它们。糟糕,ajax调用是在单击.live click事件后触发的。在chrome上检查元素时没有错误。我应该将代码放在document.ready上吗?还是在ajax调用之后?放在document.ready中似乎不起作用。从技术上讲,这无关紧要,但您可以将其放在
$(document.ready(function(){…})中声明。开始工作了。谢谢另一个关于我的帖子的问题。您认为为什么没有触发表数据的追加?感谢这里的代码:
$('uamountcon')。追加('