我知道这可能听起来很愚蠢,但出于某种原因,我有一些奇怪的问题。
所以,我在js中有一个代码生成一个带有按钮的表我给了所有按钮同一个类。
当我尝试点击它们并使用jquery函数来console.log时,没有任何事情发生。
$.each(data,function(i, d){
$('#myTable tbody').append(`
<tr>
<td>${d.Date}</td>
<td>${d.Name}</td>
<td>${d.Score}</td>
<td><button class='graphXY' data=${d.id}>View</button></td>
</tr>`);
});
它的内部ajax和表生成良好,每个按钮获得类和数据良好。
现在当我尝试
时$(".graphXY").click(function(){
console.log("hit");
})
基本上没有任何反应,由于某种原因,我无法找到原因。
答案 0 :(得分:2)
您正在使用的click()
绑定称为&#34;直接&#34;绑定只会将处理程序附加到已存在的元素。
它不会受到未来创建的元素的约束。要做到这一点,你必须创建一个&#34;委托&#34;使用on()
进行绑定。
$("#myTable").on("click", ".graphXY", function(){
console.log("hit");
})