相关疑难解决方法(0)

我应该在"addClass"之前使用"hasClass"吗?

我遇到过以下脚本,它检查一个元素是否有类a,如果没有,则添加它:

if (!$("div").hasClass("a")){
   $("div").addClass("a");
}
Run Code Online (Sandbox Code Playgroud)

由于jQuery不会添加该类(如果它已经存在),因此可以将其更改为:

$("div").addClass("a");
Run Code Online (Sandbox Code Playgroud)

但是,通过使用hasClassfirst 是否有任何性能改进,或者这是否使用相同的方法addClass,因此重复逻辑?

performance jquery addclass

99
推荐指数
3
解决办法
2万
查看次数

哪个表现更好,检查课程或添加课程

如果你有一个在滚动事件上触发的函数,那就更好了.

  1. 检查是否已添加类,如果没有添加
  2. 不要做任何检查,只需在每次需要时添加该类.
$(document).on('scroll', function () {
   var scrollTop = $(this).scrollTop();
   if (scrollTop > 50) {
      if (!$("nav .branding").hasClass("collapse"))
         $("nav .branding").addClass("collapse");
   } else {
      if ($("nav .branding").hasClass("collapse"))
         $("nav .branding").removeClass("collapse");
   }
});
Run Code Online (Sandbox Code Playgroud)

要么

$(document).on('scroll', function () {
   var scrollTop = $(this).scrollTop();
   if (scrollTop > 50) {
      $("nav .branding").addClass("collapse");
   } else {
      $("nav .branding").removeClass("collapse");
   }
});
Run Code Online (Sandbox Code Playgroud)

第一次有一个额外的检查,但在另一个行动中可能(?)是一个更激烈的操作(?)

javascript performance jquery

2
推荐指数
1
解决办法
416
查看次数

标签 统计

jquery ×2

performance ×2

addclass ×1

javascript ×1