使用jQuery .change()的最佳方法是什么?

8

我有两个脚本,它们基本上做相同的事情。我随着时间的推移构建了它们,刚刚发现我在使用几种不同的方式来得到相同的结果。

我想标准化并在这两种情况下使用最佳实践方法。

一种我测试变更事件的方法是这样的:

$('input[name="status"]').change(function() {});

我测试change事件的另一种方式是这样的:

$("#email").bind("change", function(e) {});

哪种方式最好?这两个有什么区别?

感谢您帮助我理解这个问题。

1个回答

16

在jQuery 1.7之前,change()只是bind("change")的捷径,详情请参见此处

从1.7版本开始,on()被引入,并且被推荐使用而非bind()。现在,change()表示on("change")的简写形式,事实上,所有的bind()调用现在都会在内部调用on()

简而言之,它们的作用是相同的。我发现显式使用on()(或者bind())更可取,但只要你在整个代码库中保持一致,我就看不到任何真正的区别。

可以认为使用change()而非on("change")更好,因为第一个示例中单词"change"的拼写错误会抛出解析错误("undefined is not a function"),但是在on()中会悄悄失败... 但是显然你的单元测试会捕获到这个错误,对吧?;)


那么,@Matt,我的代码语法需要像这样 $("#email").on("change", function(e) {}); 吗? - H. Ferrence

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接