我遇到过以下脚本,它检查一个元素是否有类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,因此重复逻辑?
如果你有一个在滚动事件上触发的函数,那就更好了.
$(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)
第一次有一个额外的检查,但在另一个行动中可能(?)是一个更激烈的操作(?)