jQuery 隐藏/显示复选框消息

标签 jquery checkbox

我有一个复选框,当检查一个 div 时会弹出一条消息,如果取消选中该复选框,则会弹出另一个 div 并显示另一条消息。我让它正常工作,但是当您连续单击该复选框几次时,它会变得困惑并且消息无法正确显示。有什么想法可以让这项工作变得更好吗? (我是 jquery 部门的菜鸟,所以我们非常感谢任何帮助)。非常感谢!

Check it out!

HTML:

<input type="checkbox" name="chkWishList" id="chkWishList" />Checkbox Label<br />
<div class="message1"><span>Success<small></small></span></div>
<div class="message2"><span>Removed<small></small></span></div>

jQuery:

$(function() {
    $(".message1").css("display", "none");
    $(".message2").css("display", "none");
    $("#chkWishList").click(function() {
        if (this.checked) {
            $(".message1").fadeIn("fast").fadeOut(4000);
            $(".message2").hide();
        }
        else {
            $(".message1").hide();
            $(".message2").fadeIn("fast").fadeOut(4000);
        }

    });
});

最佳答案

需要停止当前的动画,还应该传入clearQueue和jumpToEnd参数

$(function() {
    $(".message1").css("display", "none");
    $(".message2").css("display", "none");
    $("#chkWishList").click(function() {
        if (this.checked) {
            $(".message1").stop(true,true).fadeIn("fast").fadeOut(4000);
            $(".message2").hide();
        }
        else {
            $(".message1").stop(true,true).hide();
            $(".message2").stop(true,true).fadeIn("fast").fadeOut(4000);
        }

    });
});

在这里摆弄:http://jsfiddle.net/thebeebs/LwNHd/8/

您的代码的问题是 jQuery 正在对动画进行排队,因为您有一个 4 秒的动画:如果多次按下按钮,动画队列会很快变长。

您可以在此处了解有关停止命令的更多信息: http://api.jquery.com/stop/

关于jQuery 隐藏/显示复选框消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5874882/

相关文章:

jquery - 单击按钮上的 ajax 调用后,部分 View 刷新不起作用

javascript - 序列化和反序列化数组(没有jquery?)

jquery - 向 jQuery 验证添加方法,无需提交按钮

javascript - 使用 stagePadding 分隔元素

c# - 在 c#.net 中取消选中复选框时如何更改项目的颜色?

javascript - 多个复选框名称 - 单击后获取复选框的值

javascript - this.id 对于 asp :CheckBox 是空的

javascript - background.js 和内容脚本之间的通信?响应未定义

jquery - 使用突出显示的图像跨浏览器替换 HTML 复选框

java - 复选框被选中?在复选框元素内循环