jQuery toggle()方法

我现在知道了。 在jQuery 1.9版中不推荐使用toggle()方法。 没关系,但我对它很熟悉。 解决方案是导入最新的jQuery migrate插件。

在官方的jQuery API文档中,我可以看到.toggle()方法的描述中有一个注释:

不建议。 请改用.toggleClass()

是的,我可能会使用.toggleClass() ,但在这种情况下,它只在两个类之间切换。

另外,为什么不推荐使用?

“不推荐。使用.toggleClass()代替”注释是关于提供的示例,它使用.toggle()切换类,它不是关于.toggle()的一般注释。

文档还说明了为什么不建议使用:

提供.toggle()方法是为了方便起见。 手动实现相同的行为相对简单,如果.toggle()中内置的假设certificate是有限的,这可能是必要的。 例如,如果对同一元素应用两次,则无法保证.toggle()无法正常工作。 由于.toggle()在内部使用单击处理程序来完成其工作,因此我们必须取消绑定单击以删除与.toggle()附加的行为,以便可以在交火中捕获其他单击处理程序。 该实现还在事件上调用.preventDefault(),因此如果在元素上调用了.toggle(),则不会遵循链接并且不会单击按钮。

请参阅此处的进一步讨

因为将来版本的jQuery .toggle()不会在那里调用,并且会在代码中出错。