gpt4 book ai didi

javascript - DIV不隐藏时如何切换图像

转载 作者:行者123 更新时间:2023-11-28 15:30:04 25 4
gpt4 key购买 nike

我有以下 JQuery,如果按下 DIV,它会显示一个菜单:

var pull = $('#mmTrigger');
menu = $('.ulMM');
menuHeight = menu.height();

$(pull).on('click', function(e) {
e.preventDefault();
menu.slideToggle();
});

HTML:

<div class="dvMain">
<ul class="ulMM specClear">
<li class="liMM"><a href="#" class="mmLink">Portfolio</a></li>
<li class="liMM"><a href="#" class="mmLink">About</a></li>
<li class="liMM"><a href="#" class="mmLink">Contact</a></li>
<li class="liMM"><a href="#" class="mmLink">Forum</a></li>
</ul>
<div id="mmTrigger"><img src="nav-icon.png" class="imgMenu" /></div>
</div>

我将脚本修改为:

    $(pull).on('click', function(e) {
e.preventDefault();
menu.slideToggle();
if (menu.is(':hidden')) {
$(".imgMenu").attr("src", "nav-icon.png");
} else {
$(".imgMenu").attr("src", "iconx.png");
}
});

但是单击 DIV 后,X 会保留下来,并且在菜单关闭后不会返回到 nav-icon.png

如何解决该问题,以便 X 更改为菜单图标。

我添加了以下语句:alert (menu.is(':hidden'));它总是返回 false。

最佳答案

您应该在 slideToggle 动画停止后更改图标。您可以在回调中执行此操作,如下所示:

$(pull).on('click', function (e) {
e.preventDefault();
menu.slideToggle(function () {
// slideToggles callback
if (menu.is(':hidden')) {
$(".imgMenu").attr("src", "nav-icon.png");
} else {
$(".imgMenu").attr("src", "iconx.png");
}
});
});

关于javascript - DIV不隐藏时如何切换图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27731484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com