$('#buttons1').on('click', function(event) {

    $('#button1content').toggle('show');
    var wasVisible = $("#button1content").is(":visible");
    if(!wasVisible) {
        $("#buttons1").css("opacity", "0.5");
    }
});

Toggle可以很好地工作,但是当#button1content不再可见时,if语句中的任何内容都不会执行。嘘这可能是我的代码的另一部分弄乱了它,但是我只想知道这是否有什么问题。

最佳答案

您的变量wasVisible将始终返回true

  • 您可以将toggle放在最后一部分。

  • 您可以像这样重新排序代码。
    $('#buttons1').on('click', function(event) {
    
        var wasVisible = $("#button1content").is(":visible");
        if(!wasVisible) {
            $("#buttons1").css("opacity", "0.5");
        }
        $('#button1content').toggle('show');
    });
    

    JSFIDDLE DEMO

    要么

  • 只需删除'show'上的toggle即可使用
    $('#button1content').toggle();

  • 像这样:
    $('#buttons1').on('click', function(event) {
    
        $('#button1content').toggle();
        var wasVisible = $("#button1content").is(":visible");
        if(!wasVisible) {
            $("#buttons1").css("opacity", "0.5");
        }
    });
    

    JSFIDDLE DEMO

    09-25 18:26
    查看更多