我使用jQuery选择器在一个函数中多次选择和处理一个HTML元素$("#main-nav)
。
$("#main-nav")
在函数开始时将返回的jQuery对象分配给变量,并使用该变量进行操作会更快吗?
即使速度没有明显提高,还是最好的做法是这样做吗?
简而言之-以下2个功能中的哪个功能较快和/或显示了最佳做法?
//MOBILE MENU ANIMATION
$("#menu-icon").click(function() {
$("#main-nav").toggleClass("display");
if ($("#main-nav").hasClass("display")) {
$("#main-nav").velocity("transition.slideDownBigIn", {
duration: 300
});
} else {
$("#main-nav").velocity("transition.slideUpBigOut", {
duration: 300
});
}
});
或者
//MOBILE MENU ANIMATION
$("#menu-icon").click(function() {
var navMenu = $("#main-nav");
navMenu.toggleClass("display");
if (navMenu.hasClass("display")) {
navMenu.velocity("transition.slideDownBigIn", {
duration: 300
});
} else {
navMenu.velocity("transition.slideUpBigOut", {
duration: 300
});
}
});
无论在这种情况下可以优化多少jQuery,每次调用它时仍必须处理选择器字符串(即使只是检查它是否与以前使用的选择器相同)。使用变量的版本避免了这种开销,因此当然会更有效。
就最佳实践而言,在这种情况下最好将结果存储在变量中。使用相同的输入多次调用相同的函数的唯一原因是,如果您希望结果改变,或者该函数具有某些副作用。另一方面,如果您要求函数每次都给您相同的结果,并且不希望/不希望它的副作用多次发生,那么您必须存储结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句