添加条件后,代码停止工作



更改伪元素类更改的代码,无法计算出if语句。。。

伙计们请告诉我,有一个代码是有效的:


$('.dropdownlink').on('click', function (e) {
e.preventDefault()
let lass = $('.dropdownlink').hasClass('dropdownlink--active')
if (lass) 
$('.dropdownlink').removeClass('dropdownlink--active');
else if ($(this).not(this).hasClass('dropdownlink--active')) 
$('.dropdownlink').removeClass('dropdownlink--active');
$(this).addClass('dropdownlink--active');
})

我需要在最后再添加一个条件,结果是:


$('.dropdownlink').on('click', function (e) {
e.preventDefault()
let lass = $('.dropdownlink').hasClass('dropdownlink--active')
if (lass)
$('.dropdownlink').removeClass('dropdownlink--active');
else if ($(this).not(this).hasClass('dropdownlink--active'))
$('.dropdownlink').removeClass('dropdownlink--active');
$(this).addClass('dropdownlink--active');
else if ($(this).hasClass('dropdownlink--active'))
$(this).removeClass('dropdownlink--active');
})

他开始对公告或接线员的预期破口大骂,我决定为每个条件添加花括号:


$('.dropdownlink').on('click', function (e) {
e.preventDefault()
let lass = $('.dropdownlink').hasClass('dropdownlink--active')
if (lass) {
$('.dropdownlink').removeClass('dropdownlink--active');
}
else if ($(this).not(this).hasClass('dropdownlink--active')) {
$('.dropdownlink').removeClass('dropdownlink--active');
$(this).addClass('dropdownlink--active');
}
else if ($(this).hasClass('dropdownlink--active')) {
$(this).removeClass('dropdownlink--active');
}
})

停止了咒骂,但也完全停止了工作,有人能注意到错误吗,我能做错什么?

在第一个示例中,行

$(this).addClass('dropdownlink--active'); 

在两种情况下都执行(if/else(。

然后,你的代码应该是这样的:

$('.dropdownlink').on('click', function(e) {
e.preventDefault()
let lass = $('.dropdownlink').hasClass('dropdownlink--active')
if (lass) {
$('.dropdownlink').removeClass('dropdownlink--active');
$(this).addClass('dropdownlink--active');
} else if ($(this).not(this).hasClass('dropdownlink--active')) {
$('.dropdownlink').removeClass('dropdownlink--active');
$(this).addClass('dropdownlink--active');
} else if ($(this).hasClass('dropdownlink--active')) {
$(this).removeClass('dropdownlink--active');
}
})

最新更新