我的 javascript 语句不会运行其 else 语句,即使未选中复选框

My javascript statement won't run its else statement even though checkbox isn't checked

本文关键字:语句 复选框 else javascript 运行 我的      更新时间:2023-09-26

我有一个复选框,每次单击标签时都应该选中该复选框。但是,js 只会运行初始 if 语句。之后,当 .menu-bar-checkbox.checked 为 false 时,else 语句将不会运行。我看到复选框被选中。

所以基本上,在标签淡入后,我也无法让它在点击后进行动画处理。感谢您的帮助!

我的网页:

<ul class="ul-links">
  <li class="hide li-portfolio"><a href="index.html" class="selected">Portfolio</a></li>
  <li class="hide"><a href="about.html">About</a></li>
  <li class="hide li-contact"><a href="contact.html">Contact</a></li>
</ul>
<label class="no-pull menu-bar">
    Menu
    <input class="menu-bar-checkbox" type="checkbox">
</label>    

我的js:

$(function() {
    var $hide = $('.hide');
    $hide.hide();

    $('label').on('click', function() {
        if ($('.menu-bar-checkbox').checked = true) {
            $hide.fadeIn(1000);
        } else {
            $('.ul-links').animate ({
                height: 0,
            }, 1000)
        }
    });
})

更改:

($('.menu-bar-checkbox').checked = true)

自:

($('.menu-bar-checkbox')[0].checked == true)

使用==检查一个值与另一个值。$('.menu-bar-checkbox')返回与class selection匹配的复选框列表。(在您的情况下只有一个)。使用[0]解决正确的问题。

并且完全在jQuery中(如评论中所建议的)

($('.menu-bar-checkbox').is(':checked'))

注意:jQuery将在具有类.menu-bar-checkbox并被选中的每个复选框上触发。带有[0]的复选框只会在列表中的第一个复选框selected触发。