Javascript AJAX添加的字段的事件处理程序

Javascript AJAX添加的字段的事件处理程序,javascript,jquery,ajax,javascript-events,event-handling,Javascript,Jquery,Ajax,Javascript Events,Event Handling,我有一个表单,其中包含一组复选框,可以进行多次选择。(下面是代码片段) 表单的内部HTML是由AJAX添加的,这是因为生成内容需要时间,所以用户最初看到的是一个空白表单,几秒钟后看到的是它的内容 问题是复选框需要一个“onchange()”事件。对于简单的静态字段,我可能会给它们提供相同的类,然后使用jQuery$(“.mychkboxes”)。on(“change”,my_event_handler) 对于动态添加的字段,我从需要使用事件委派的其他问题中收集,对此我不太自信,因此我在AJAX处

我有一个表单,其中包含一组复选框,可以进行多次选择。(下面是代码片段)

表单的内部HTML是由AJAX添加的,这是因为生成内容需要时间,所以用户最初看到的是一个空白表单,几秒钟后看到的是它的内容

问题是复选框需要一个“onchange()”事件。对于简单的静态字段,我可能会给它们提供相同的类,然后使用jQuery
$(“.mychkboxes”)。on(“change”,my_event_handler)

对于动态添加的字段,我从需要使用事件委派的其他问题中收集,对此我不太自信,因此我在AJAX处理程序的字段定义中添加了一个
onchange=“my_event_handler();”
,当然,在填充表单时,浏览器中的网页中已经存在处理程序函数

但是现在发生的事情是,如果我执行
“onchange=\”警报('test');我的事件处理程序()\“”
,警报会触发,因此我知道它正在工作,但从未调用过
我的事件处理程序()
,尽管它存在并且不是以编程方式添加的

我不明白为什么。或者,如何在jQuery中以编程方式添加处理程序,以便比较这两种方法

相关javascript(如果相关,由于其他原因使用events.push):


.on()
事件绑定也应该适用于动态html元素请参阅此性质的早期内容
$(div).on(“change”,“.chk_mycheckboxlist”,function(){……)$('#myform_div')。on('change','chk_mycheckboxlist',function(){/*此处的代码*/');
。有关更多信息,请参阅我标记为重复的问题。问题的原因是,当从*
属性上的
调用函数时,它需要在
窗口的范围内可用,在该窗口中,您的函数似乎被定义为数组或对象的一部分。事件委派在c或c中都是一个更干净的解决方案ase
<script type="text/javascript">
//<![CDATA[
events.push(function() {

    function my_event_handler() {
        alert("handler entered");
    }

    ... ajax success handler relevant line...
    $('#myform_div').html(data.form_html);

});
//]]>
</script>
<div id="mydiv">
<input class="chk_mycheckboxlist" name="chk_mycheckboxlist[]" onchange="alert('event triggered'); my_event_handler();" id="chk_mycheckboxlist_item998" type="checkbox" value="998">

...

<input class="chk_mycheckboxlist" name="chk_mycheckboxlist[]" onchange="alert('event triggered'); my_event_handler();" id="chk_mycheckboxlist_item999" type="checkbox" value="999">
</div>