8

このコードはfrm01を示しています:

$(document).ready(function() {
$("#reg").click(function () {
$("#frm01").show("slide", { direction: "down" }, 1000);
});
});

ただし、frm01がすでに表示されている場合は非表示にし、その逆も同様です。どうすればこれを行うことができますか?

4

4 に答える 4

14

jQueryのtoggle()メソッドを試してください:

$(function() {
    $("#reg").click(function () {
        $("#frm01").toggle(1000);
    });
});

if-elseステートメントを使用するためにjQueryは必要ありません。Javascriptはそれらをネイティブに実装します...

$(function() {
    $("#reg").click(function () {
        if ($("#frm01").is(":visible"))
            $("#frm01").slideUp(1000);
        else
            $("#frm01").slideDown(1000);
    });
});
于 2012-07-15T21:24:50.867 に答える
2

これを試して:

$(document).ready(function() {
   $("#reg").click(function () {
    if ($("#frm01").is(':hidden')) {
      $("#frm01").show("slide", { direction: "down" }, 1000);
    } else {
      $("#frm01").hide(1000);
    }
  });
});
于 2012-07-15T21:26:17.313 に答える
1

$ .toggle()メソッドを使用して、表示と非表示を切り替えることができます。要素が非表示か表示かを識別するには、しばらく時間が必要です。

$("#reg").click(function () {
if($("#frm01").hasClass('fram1-slide-on')){
    $("#frm01").hide();
    $("#frm01").removeClass('fram1-slide-on');
}   else {
    $("#frm01").show("slide", { direction: "down" }, 1000);
    $("#frm01").addClass('fram1-slide-on');
}

});

于 2012-07-15T21:56:46.110 に答える
1
  $("#reg").on('click', function () {
    $("#frm01:hidden").show("slide", { direction: "down" }, 1000);
    $("#frm01:visible").hide("slide", { direction: "up" }, 1000);
  });

また

  $("#reg").toggle(
    function () {
      $("#frm01").show("slide", { direction: "down" }, 1000);
    },
    function(){
      $("#frm01").hide("slide", { direction: "up" }, 1000);
    }
  );

また動作するはずです

于 2012-07-15T21:26:59.473 に答える