jQuery中的$ .noop()变量适用于一个循环,但不是两个循环

时间:2011-08-11 04:59:13

标签: javascript jquery

此脚本用于文本框fadeIn onClick然后fadeOut onClick。它第一次工作。但是,第二次这样做时,$ .noop()变量不起作用。 Here's我刚开始工作的网站的链接。如果您点击“音乐”,“生物”或“链接”标签两次,您将看到我在说什么。这是jQuery:

$(document).ready(function() {
$('#music-box').hide();
    $('#links-top-music').click(function() {
        $('#music-box').fadeIn(1000);
        $.noop();
                $('#links-top-music').click(function() {
                    $('#music-box').fadeOut(750);
                });
            });
        });

2 个答案:

答案 0 :(得分:2)

试试这个。

$(document).ready(function() {
    $('#music-box').hide();
    $('#links-top-music').click(function(evt) {
        if ($('#music-box:visible').length) {
            $('#music-box').fadeOut(750);
        }
        else {
            $('#music-box').fadeIn(1000);
        }
        evt.preventDefault();
    });
});

在这里演示:http://jsfiddle.net/naveen/pfT5E/

答案 1 :(得分:1)

根据您更新的评论:

$(document).ready(function() {
    var buttonStatus = false;
    $('#music-box').hide();
    $('#links-top-music').click(function() {
        if(buttonStatus) {
            $('#music-box').fadeOut(750);
        } else {
            $('#music-box').fadeIn(1000);
        }
        buttonStatus = !buttonStatus;
    });
});

这将在可见和不可见之间切换。