我有一个脚本,可以使用表格动态生成网格。
//createGrid(height, width);
createGrid(1, 2);
//one row with 2 cols
创造了这个:
<table>
<tr>
<td></td>
<td></td>
</tr>
</table>
我需要为添加/更改其类的td标记添加onclick事件。我尝试了一些解决方案无济于事。有任何想法吗?我在Jquery不太好。
答案 0 :(得分:3)
对于动态生成的元素,应该从元素的静态父项之一或document
对象委派事件,您可以使用on
方法:
$(document).on('click', 'td', function(){
$('.selected').removeClass('selected');
$(this).addClass('selected')
})
答案 1 :(得分:0)
您可以使用on jquery函数绑定动态生成的事件委托项,它将现有元素与事件绑定,它还将绑定动态添加的元素。 $('td').click(function(){});
只绑定现有元素,但不绑定绑定后动态添加的元素。
$(document).on("click", "td", function(){
alert("clicked");
});
委派活动
委派事件的优势在于它们可以处理来自的事件 稍后添加到文档中的后代元素。通过 选择一个保证在当时存在的元素 委托事件处理程序附加,您可以使用委托事件 避免频繁附加和删除事件处理程序reference。
您可以使用某个父元素选择器更改文档。
答案 2 :(得分:0)
另一种使用find
,live
和toggleClass
$("table").find("td").live("click", function() {
$(this).toggleClass("selected");
});