Javascript jQuery动态onclick
我试图通过这种方式将动态onclick添加到行中Javascript jQuery动态onclick,javascript,jquery,Javascript,Jquery,我试图通过这种方式将动态onclick添加到行中 function addStudent(data) { var row = $('#students').append('<tr itemId="' + data.ID + '" ></tr>'); row.on("click", function () { console.log(data.ID); // THIS IS JUST FOR TESTING //loadSt
function addStudent(data) {
var row = $('#students').append('<tr itemId="' + data.ID + '" ></tr>');
row.on("click", function () {
console.log(data.ID); // THIS IS JUST FOR TESTING
//loadStudent(data);
});
}
函数addStudent(数据){
变量行=$(“#学生”).append(“”);
行上(“单击”,函数(){
console.log(data.ID);//这只是为了测试
//学生(数据);
});
}
为什么在控制台中单击一行就可以得到所有ID
问题?
单击任意一行,我就可以在控制台中获得本例的所有数据或学生ID
编辑
请注意这里的data.ID就是一个例子,因为您可以看到我注释掉了真实代码,在这里我将完整对象传递给另一个方法
为什么在控制台中单击一行就可以得到所有ID
因为每次调用addStudent
,都会在函数中绑定一个额外的click处理程序
使用委托将单击处理程序绑定到函数外部
为什么在控制台中单击一行就可以得到所有ID
因为每次调用addStudent
,都会在函数中绑定一个额外的click处理程序
使用委托将单击处理程序绑定到函数外部
要将单击事件附加到
,需要这样编写:
$('<tr itemId="' + data.ID + '" ></tr>').appendTo('#students').on("click", function () {
console.log(data.ID);
//loadStudent(data);
});
$('<tr itemId="' + data.ID + '" ></tr>').appendTo('#students').on("click", { value: data }, function () {
var theData = event.data.value;
console.log(theData.ID);
//loadStudent(theData);
});
有关此概念的更多信息,请参见。要将单击事件附加到
,您需要这样编写:
$('<tr itemId="' + data.ID + '" ></tr>').appendTo('#students').on("click", function () {
console.log(data.ID);
//loadStudent(data);
});
$('<tr itemId="' + data.ID + '" ></tr>').appendTo('#students').on("click", { value: data }, function () {
var theData = event.data.value;
console.log(theData.ID);
//loadStudent(theData);
});
有关此概念的更多信息,请参阅。事件委派是答案请不要忘记我要将数据传递给另一个功能侧注释的要点,请使用
data-*
attributes,data itemId
。事件委派是答案请不要忘记我要将数据传递给另一个功能侧注释的要点,在此处使用data-*
属性,data itemId
。