Javascript 使用json dict填充数据表时,在Jquery中未检测到Html类标记

Javascript 使用json dict填充数据表时,在Jquery中未检测到Html类标记,javascript,jquery,django,datatables,Javascript,Jquery,Django,Datatables,我有一个datatable,其中一列带有“PRINT”选项。该表的外观如下所示: <button class="classname_for_js"> PRINT </button> 行的HTML是从django视图生成的JSON dict加载的 第3列的HTML如下所示: <button class="classname_for_js"> PRINT </button> printData()是一个调用打印API进行打印的函数

我有一个datatable,其中一列带有“PRINT”选项。该表的外观如下所示:

<button class="classname_for_js">
    PRINT
</button>

行的HTML是从django视图生成的JSON dict加载的

第3列的HTML如下所示:

<button class="classname_for_js">
    PRINT
</button>
printData()是一个调用打印API进行打印的函数

对于调试,我正在尝试控制台:

jQuery(".classname_for_js").on('click', function(){
     console.log("Printing.....");
});
但是,我在控制台上什么也看不到

我有另一个datatable,它的数据不是从json dict填充的,对于它,打印按钮可以正常工作


我可能做错了什么吗?

您可以这样编写单击处理程序

$(document).on('click', '.classname_for_js', function () {
    console.log("Printing.....");
});
您可以用dom上已经存在的任何父元素替换
文档

注意:事件处理程序仅绑定到当前选定的 元素;它们必须在代码生成代码时存在于页面上 调用.on()


我认为您需要告诉我们,您建议使用委托处理程序,它将处理动态注入的HTML。除此之外,我相信你的答案是正确的。@Deesha,你应该使用
'body'
,或者更好地使用你的
'tableId'
或者你的表所属的
#容器
<代码>文档是您可以使用的最差的选择,因为在整个DOM范围内每次单击都会与第二个选择器进行比较。这是一个巨大的开销,它会减慢响应时间,因为你的点击会从你能想象到的最外层元素冒出气泡。就我个人而言,我认为使用(上的
$(document).on的建议真的非常糟糕。想象一下,在200个元素上有10个委托处理程序,都指向文档根。这是一个巨大的开销。我给了表一个id,但这似乎不起作用。@davidkonrad