jQuery在更新DOM后无法触发更改

jQuery在更新DOM后无法触发更改,jquery,ajax,triggers,Jquery,Ajax,Triggers,我在一个链中创建了一些相关下拉列表。顶部的一个应该为它下面的每个下拉菜单触发多个Ajax请求 我正在使用jQuery1.3.2,因此所有重新加载的DOM项都应该绑定事件处理程序,但新更新的元素不会触发更改 我在这里做错了什么 function dropDown_CHILD() { jQuery.ajax({ 'async': false, 'url':..., 'data':..., 'cache':false,

我在一个链中创建了一些相关下拉列表。顶部的一个应该为它下面的每个下拉菜单触发多个Ajax请求

我正在使用jQuery1.3.2,因此所有重新加载的DOM项都应该绑定事件处理程序,但新更新的元素不会触发更改

我在这里做错了什么

function dropDown_CHILD()
{
    jQuery.ajax({
        'async': false,
        'url':...,
        'data':...,
        'cache':false,
        'success':function(html){
            $('#CHILD_unavailable').empty();
            $('#CHILD').replaceWith(html);
        },
        'complete': function(request, status){
            $('#CHILD').trigger('change');
        },
        'error':function(a,b,c){alert('An error occurred, please try again.');}
    });

}
$('#PARENT').livequery('change', dropDown_CHILD);
对于CHILD-OF-CHILD也会产生同样的结果,所以这应该在完整的函数中调用它的处理程序,不是吗

更新:


非常感谢您的光临。

也许replaceWith会在插入替换之前删除元素,以便您的事件解除绑定:

当一个元素不再匹配 选择器选择活动查询绑定的事件 对它来说,它们是不受约束的。实时查询可以 已过期,不再具有约束力 其他事件并解除所有事件的绑定 它以前绑定的事件。 livequery文档


我最终解决了这个问题,将插件替换为,将侦听器放在文档DOM对象上


现在,无论DOM是如何更新的,它都知道所有实例。

您是否有一个实时测试用例?那真的很有帮助。我必须得到客户的批准,这需要一段时间。你可以复制它并删除任何特定于客户的信息:给你:你能告诉我们它在哪里不起作用吗?我应该单击什么,等等?Replace肯定会删除该元素,但它也会添加另一个具有相同ID的元素。您还有什么建议吗?作为一种解决方法,您可以使用触发函数替换.trigger'change'。PS:当第二个select有2个元素时,你会重现这个问题吗?触发的函数只知道父项和子项。它不应该知道child中的child,因为这是可选的。是的,无论项目数量如何,错误都会存在。是的,触发器函数知道child而不是child的child,但是使用触发器函数可以得到相同的级联,我不明白为什么不在示例代码中