即使未选中复选框,我的 javascript 语句也不会 运行 其 else 语句
My javascript statement won't run its else statement even though checkbox isn't checked
我有一个复选框,每次单击标签时都应选中该复选框。但是,js只会运行初始的if语句。之后,当.menu-bar-checkbox.checked为false时,else语句就不会运行了。我看到复选框被选中。
所以基本上,在标签淡入之后,我也无法让它在点击后显示动画。感谢您的帮助!
我的html:
<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')
returns 与 class selection
匹配的复选框列表。 (在你的情况下只有一个)。使用 [0]
来解决正确的问题。
并且完全在 jQuery 中(如评论中所建议)
($('.menu-bar-checkbox').is(':checked'))
Note: the jQuery one will fire on every checkbox that has class .menu-bar-checkbox
and is selected. The one with [0]
will only fire on the first checkbox selected
in the list.
我有一个复选框,每次单击标签时都应选中该复选框。但是,js只会运行初始的if语句。之后,当.menu-bar-checkbox.checked为false时,else语句就不会运行了。我看到复选框被选中。
所以基本上,在标签淡入之后,我也无法让它在点击后显示动画。感谢您的帮助!
我的html:
<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')
returns 与 class selection
匹配的复选框列表。 (在你的情况下只有一个)。使用 [0]
来解决正确的问题。
并且完全在 jQuery 中(如评论中所建议)
($('.menu-bar-checkbox').is(':checked'))
Note: the jQuery one will fire on every checkbox that has class
.menu-bar-checkbox
and is selected. The one with[0]
will only fire on the first checkboxselected
in the list.