Javascript 跟踪html表/表单中的更改
我试图实现的是跟踪Javascript 跟踪html表/表单中的更改,javascript,jquery,html,Javascript,Jquery,Html,我试图实现的是跟踪-元素中的任何更改(例如,用户输入、添加的字段等)。 在我的特定场景中,用户可以编辑字段、添加行、添加字段、删除字段和行、选择-元素中的内容,等等 当然,我可以把我的“改变”——倾听者和所有这些行为联系起来,但我认为一定有更好的方法 我尝试附加一个$('#myTable tbody').change()-listener到它,但是没有触发 也许你们中的一些人知道一种跟踪表更改的方法,而不必手动订阅每个可能的用户操作?编辑:据我所知,jQuery 1.4+实际上应该支持所描述的行
-元素中的任何更改(例如,用户输入、添加的字段等)。
在我的特定场景中,用户可以编辑字段、添加行、添加字段、删除字段和行、选择
-元素中的内容,等等
当然,我可以把我的“改变”——倾听者和所有这些行为联系起来,但我认为一定有更好的方法
我尝试附加一个$('#myTable tbody').change()
-listener到它,但是没有触发
也许你们中的一些人知道一种跟踪表更改的方法,而不必手动订阅每个可能的用户操作?编辑:据我所知,jQuery 1.4+实际上应该支持所描述的行为。我将把我的文章的其余部分留作参考 您可以将事件添加到每个可变元素中,因为它们是在该元素中激发的。但是,您不必手动执行此操作:
$('#myTable input, #myTable select, ...).change(...)
如您所说,如果稍后添加了元素,您可能需要研究.live
方法,该方法允许您将事件侦听器绑定到稍后创建的元素。您可以使用
下面是鼠标悬停和移出的示例。你可以对所有的事件都这样做
$('table')
.livequery(function(){
// use the helper function hover to bind a mouseover and mouseout event
$(this)
.hover(function() {
$(this).addClass('hover');
}, function() {
$(this).removeClass('hover');
});
}, function() {
// unbind the mouseover and mouseout events
$(this)
.unbind('mouseover')
.unbind('mouseout');
});
回答我自己的问题: 我决定像@mdsl建议的那样做: 现在,我将听取如下更改:
$('myTable tbody')。打开('focusout','input,select,checkbox',myListener)代码>我想我也许可以通过冒泡来捕捉这些事件…?我又看了一下jQuery文档。看起来你是对的——它应该真的有效。