0

我有一个使用表格动态生成网格的脚本。

//createGrid(height, width);
createGrid(1, 2);
//one row with 2 cols

这创造了这个:

<table>
    <tr>
        <td></td>
        <td></td>
    </tr>
</table>

对于添加/更改其类的 td 标签,我需要一个 onclick 事件。我尝试了一些解决方案无济于事。有任何想法吗?我不擅长 Jquery。

4

3 回答 3

4

对于动态生成的元素,应该从元素或document对象的静态父对象之一委托事件,您可以使用on以下方法:

$(document).on('click', 'td', function(){
   $('.selected').removeClass('selected');
   $(this).addClass('selected')
})
于 2012-10-27T20:57:38.503 回答
0

您可以使用on jquery 函数来绑定动态生成的事件委托项,它将现有元素与事件绑定,它还将绑定动态添加的元素。$('td').click(function(){});只会绑定现有元素,而不是绑定后动态添加的元素。

$(document).on("click", "td", function(){
     alert("clicked");
});

委托活动

委托事件的优点是它们可以处理来自以后添加到文档的后代元素的事件。通过选择一个在附加委托事件处理程序时保证存在的元素,您可以使用委托事件来避免频繁附加和删除事件处理程序的需要,参考.

您可以使用一些父元素选择器更改文档。

于 2012-10-27T20:52:40.130 回答
0

另一种使用find,livetoggleClass

$("table").find("td").live("click", function() {
    $(this).toggleClass("selected");
});​

提琴手

于 2012-10-27T20:59:43.593 回答