Javascript 部分数据更新后保留.click()函数
我使用一个坐标系表,每个td元素中都有一个函数来更新字段值Javascript 部分数据更新后保留.click()函数,javascript,jquery,Javascript,Jquery,我使用一个坐标系表,每个td元素中都有一个函数来更新字段值 [ ][ ][X][ ] [ ][X][X][X] [X][ ][ ][ ] 当我单击一个空元素时,我希望它在我的数据库中将值设置为“X”,方法是从我的rails应用程序中获取新的部分数据(并发送GET变量),然后重新呈现表。这在我的rails应用程序中运行得很好,但是只有一次。似乎jQuery函数.click()只运行一次。该函数如下所示:(通过.coffeescript生成) 这将运行得很好,一旦我单击一个元素,它将在表中呈现新数
[ ][ ][X][ ]
[ ][X][X][X]
[X][ ][ ][ ]
当我单击一个空元素时,我希望它在我的数据库中将值设置为“X”,方法是从我的rails应用程序中获取新的部分数据(并发送GET变量),然后重新呈现表。这在我的rails应用程序中运行得很好,但是只有一次。似乎jQuery函数.click()只运行一次。该函数如下所示:(通过.coffeescript生成)
这将运行得很好,一旦我单击一个元素,它将在表中呈现新数据——但只呈现一次!如果在交换函数中的HTML后重新定义.click()函数,它允许我单击(并更新)两次,以此类推
我很确定这是一个基本问题,但到目前为止,搜索没有成功。委派事件。通过这样做,您只需要附加处理程序一次
$(".field").click(function(e) {
将成为:
$("body").on('click', '.field', function(e) {
主体
可以替换为任何静态父容器。使用事件委派:
$( '#dinner_table' ).on( 'click', '.field', function () {
/* your click handler */
});
因此,click处理程序绑定在公共祖先(本例中是TABLE元素)上。以前从未听说过,但这正是我要寻找的。Thanks@AllanNørgaard。。很高兴能帮上忙。。有关它的更多信息,你可以查看这个
$( '#dinner_table' ).on( 'click', '.field', function () {
/* your click handler */
});