Javascript 使用jQuery监听表单中的每个输入字段

Javascript 使用jQuery监听表单中的每个输入字段,javascript,jquery,performance,Javascript,Jquery,Performance,我正在开发一个使用jQuery的SPA,其中一个要求是我应该为输入字段的特定值(复选框、下拉列表、文本)触发操作。我想从性能的角度了解以下哪一项更快或更简单 $('input, select').on('click focus change', function(e){ //do something }); 或 另外,考虑到页面上会有异步操作,第二个选项是我所倾向的,但我想和各位专家核实一下:)第二个片段将事件附加到整个表单上。如果用户在任何地方单击/聚焦/更改任何内容(尤其是单击),则会触发

我正在开发一个使用jQuery的SPA,其中一个要求是我应该为输入字段的特定值(复选框、下拉列表、文本)触发操作。我想从性能的角度了解以下哪一项更快或更简单

$('input, select').on('click focus change', function(e){
//do something
});


另外,考虑到页面上会有异步操作,第二个选项是我所倾向的,但我想和各位专家核实一下:)

第二个片段将事件附加到整个表单上。如果用户在任何地方单击/聚焦/更改任何内容(尤其是单击),则会触发事件。一旦触发,它就会检查是否对输入或选择进行了操作,如果没有,它就会中止。因此,第二个版本的开销稍高,因为它有时会触发非输入/选择事件

第二种格式的主要优点是用于动态创建的元素。假设用户所做的事情导致在表单上创建一个附加字段。如果最初加载页面时该字段不在页面上,则更改/单击该字段时不会触发事件的第一个版本。但是,第二个版本将被触发


我的建议是:除非您像我描述的那样专门处理动态字段,否则我将使用第一个。老实说,两者之间的差别很小,两者都可以。

第二个片段将事件附加到整个表单。如果用户在任何地方单击/聚焦/更改任何内容(尤其是单击),则会触发事件。一旦触发,它就会检查是否对输入或选择进行了操作,如果没有,它就会中止。因此,第二个版本的开销稍高,因为它有时会触发非输入/选择事件

第二种格式的主要优点是用于动态创建的元素。假设用户所做的事情导致在表单上创建一个附加字段。如果最初加载页面时该字段不在页面上,则更改/单击该字段时不会触发事件的第一个版本。但是,第二个版本将被触发


我的建议是:除非您像我描述的那样专门处理动态字段,否则我将使用第一个。老实说,两者之间的差别如此之小,任何一个都可以。

就性能而言,没有什么值得大书特书的。差异(如有)可以忽略不计。对于异步操作,我建议您使用第二个代码段。

就性能而言,没有太多值得详细介绍的内容。差异(如有)可以忽略不计。对于异步操作,我建议您使用第二个代码段。

第一个代码段的开销会稍微小一些,但应该不会太大。第二种方法的好处是,它可以处理动态创建的字段,而不仅仅是加载时页面上的字段。第一种方法的开销稍微小一些,但应该不会太大。第二种方法的好处是,它可以处理动态创建的字段,而不仅仅是加载时页面上的字段。感谢您的解释!谢谢你的解释!
$('form').on('click focus change', 'input, select', function(e){
//do something
});