Jquery Show()在第一次点击时起作用,第二次在chrome上不起作用。点击甚至根本不在Firefox上工作

时间:2016-03-11 17:08:44

标签: jquery

函数Show()第一次工作,第二次不工作。

此外,点击功能在firefox中根本不起作用。

我想要完成的是点击#showmenu,隐藏另一个showmenu2,这是一张图片并显示另一个div,之前用CSS显示隐藏了:none然后单击PANEL-CLOSE,它显示showmenu2再次隐藏另一个

  $(document).ready(function () {
    $('#jshowmenu').click(function () {
        $('.jbox').show("slide");
        //  $('.jbox').css("display", "inline-block");

        $('#jshowmenu2').hide();

    });

    $('.panel-close2').click(function () {
        $('#jshowmenu2').toggle("slide");


        $('.jbox').hide();

    });




    $('#jshowmenu2').click(function () {
        //    $('.jbox2').show("slide");

        //   $('.jbox2').css("display","block");
        if ($('#jshowmenu').is(":visible"))
            {
            $('#jshowmenu').hide();
        }
        $('.jbox2').show("slide");
        // $('.jbox2').toggle("slide");
    });

    $('.panel-close').click(function () {
        $('#jshowmenu').toggle("slide");


        $('.jbox2').hide();

    });

});

1 个答案:

答案 0 :(得分:0)

Jquery .show().hide()依赖于内联样式,这被称为bad practice most of the time。我建议创建一个隐藏元素的CSS类,例如.hidden { display: none; }并使用.addClass('hidden').removeClass('hidden')代替。

您还可以将.is(":visible")替换为.hasClass('hidden'),以测试该元素当前是否可见。我建议使用数据属性而不是手动检查,但是你可能有这样做的具体原因。