页面加载时,页面中有一个下拉列表-ddlFilter,还有一个复选框(在divData中ID为239的复选框)。更改下拉列表的值将进行ajax调用,然后将divData的内容替换为接收到的内容。收到的内容是另一个复选框的HTML(例如ID 249)。
单击任何复选框后,应触发showProduct()

问题:最初在页面加载后,当我单击复选框239时,触发了showProduct。但是,在更改下拉列表并单击复选框249之后,不会触发该功能。

控制台中没有错误。我认为事件处理未绑定到非常规添加的复选框。我怎样才能解决这个问题。

ASPX:

<asp:dropdownlist id="ddlFilter" runat="server/>

<div id="divData">
<input type="checkbox" class="chkBx" id="239"> --line 1

<!--On changing the dropdown value, line 1 will be replaced by this.-->
<!--<input type="checkbox" class="chkBx" id="249">-->
</div>


JS:

$(document).ready(function(){
 $("#ddlFilter").change(function(){
   //code to make ajax call and bind new html inside divData
 })

 $(".chkBx").change(function(){
   showProduct();
 })
})

function showProduct(){
  alert();
}

最佳答案

尝试这个

 $( "body" ).delegate( ".chkBx", "change", function() {
       showProduct();
    });

    $( "body" ).on("change",".chkBx",function(){
       showProduct();
     });

09-25 15:30