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

标签 javascript jquery html ajax asp.net-mvc

我可以轻松捕获复选框的点击事件,如下所示:

<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
});

关于javascript - 无法捕获 HTML 字符串中元素的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39858004/

相关文章:

javascript - 按键名过滤对象

html - 100% 没有 div 的页脚

javascript - 如果可能,如何在执行前使用 Chrome 扩展程序编辑 &lt;script&gt; 标记中的代码?

javascript - 将数据属性设置为按钮并链接所述 attr jquery 的值

javascript - 如何在 JavaScript 中查找到已知位置的距离

javascript - 将小型网络应用程序从普通网站迁移到 WordPress 网站?

html - <li> 之间的间距

c# - C# 中的帮助文件

javascript - 在 Javascript 中通过 Rest API 发送 Http POST 请求

javascript - 如果端口范围太宽,Node 中的端口扫描将不起作用