无法捕获HTML字符串中元素的单击事件

Cannot catch click event of an element in HTML string

本文关键字:元素 单击 事件 字符串 HTML      更新时间:2023-09-26

我可以很容易地捕捉到一个复选框的点击事件,如下所示:

<input type="checkbox" id="checkbox1" />
$('#checkbox1').change(function () {
    if (this.checked) {
        //Do stuff
    }
});

另一方面,我在AJAX(在jQuery DataTable中)的回调上创建了一个复选框作为HTML,并且无法捕获同一元素的单击事件:

//...
"ajaxSource": "/Student/GetStudents",
"fnServerData": function (sSource, aoData, fnCallback) {
    aoData.push({ "name": "all", "value": all });
    $.getJSON(sSource, aoData, function (json) {
        fnCallback(json);
        $("div.toolbar").html('<input type="checkbox" id="checkbox1" /> Get all records');
    });
},

在HTML字符串中获得复选框值的最合适方法是什么?

更改事件侦听器是在当前存在的所有DOM元素上创建的,因此当您添加新的复选框时,更改方法不会注册。修改代码如下:

$(document).on('change','#checkbox1',function() {
    //stuff
});