0

以下と同じ3つの機能があります。ShowAction2()、ShowAction3()、ShowAction4()。各関数は、DIV の表示、他の DIV の非表示、およびクラスの追加と削除を担当します。

次に、showAction() 関数を削除し、新しい関数 gogo() を追加します。関数が 2 回目に呼び出されると、プロセス全体が逆になります。

  $("#clickDiv").click(function showAction(){
     $("#infDivOne").show();
     $("#infDivTwo, #infDivThree, #infDivFour").hide();
     $(".goActive2, .goActive3, .goActive4").removeClass('glow');
     $("#clickDiv2, #clickDiv3, #clickDiv4").removeClass('rotated');
     $("#clickDiv").addClass('rotated');
     $(".goActive").addClass('glow');
     $("#clickDiv").off('click');

     $("#clickDiv").on('click', function gogo(){
        $("#infDivOne").hide();
        $(".goActive").removeClass('glow');
        $("#clickDiv").removeClass('rotated');
        $("#clickDiv").off('click');
        $("#clickDiv").on('click',showAction);
    });
  });

同様の結果を達成するためのより良い方法があると確信していますが、現在、これは一種の機能です. 唯一の問題は、関数を呼び出すためにボタンをダブルクリックする必要がある場合があることです。

最終的には機能全体を置き換える予定ですが、ダブルクリックが必要な場合とシングルクリックが必要な場合がある理由を誰か指摘できますか?

(そして、このくだらないことを読もうとしている人には、前もってお詫びします。)

4

4 に答える 4

0

これはどうですか?

$("#clickDiv").click(function() {
    if($("infDivOne").is(":visible")) {
        // This div is visible, so toggle the effects off
    }
    else {
        // This div isn't visible, so toggle the effects on
    }
});
于 2013-08-27T17:32:16.707 に答える