Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 跟踪html表/表单中的更改_Javascript_Jquery_Html - Fatal编程技术网

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文档。看起来你是对的——它应该真的有效。