

AdminLTE を使用しています。

AdminLTEの機能で、  
`<a href="#" data-toggle="control-sidebar"></a>` をクリックすると、  
`<aside class="control-sidebar control-sidebar-light">` に自動で、  
`control-sidebar-open`クラスが付与され、  
（`<aside class="control-sidebar control-sidebar-light control-sidebar-open">`）  
再度、`<a href="#" data-toggle="control-sidebar"></a>` をクリックすると、  
`control-sidebar-open`クラスが外され、メニューが閉じることができるのですが、

`<a href="#" data-toggle="control-sidebar"></a>`クリックではなく、  
`control-sidebar`以外の範囲をクリックした場合にも、  
`control-sidebar-open`クラスが外され、メニューが閉じるようにしたいのですがどのようにしたらよいか教えていただけないでしょうか？

`id="target"`は自分で記述してみました。

`vender/adminLTE`が入ってないので、スニペットで同じような状況が作れず、  
わかりにくい点もあるかと思いますが、何卒ご教授のほどよろしくお願いします。

[code]

    $(function(){
      if($('#target').hasClass('control-sidebar-open')) {
        $().click(function(e) {
          if (!$(e.target).closest('#target').length) {
            $('#target').removeClass('control-sidebar-open');
          }
        });
      };
    });
[/code]

[code]

    .control-sidebar {
        position: fixed;
        height: 100%;
        overflow-y: auto;
        padding-bottom: 50px
    }
[/code]

[code]

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
      
     <nav class="navbar navbar-static-top" role="navigation">
       <div class="navbar-custom-menu">
         <ul class="nav navbar-nav">
           <li>
             <a href="#" data-toggle="control-sidebar"></a>
             <aside class="control-sidebar control-sidebar-light" id="target">
               <ul class="menu>
                <li>A</li>
                <li>B</li>
                <li>C</li>
               </ul>
            </aside>
           </li>
         </ul>
       </div>
     </nav>
        
[/code]


CC BY-SA 4.0
2019-10-18T04:36:15.567
59779
2019-10-18T04:36:15.567
35901
question
jquery
AdminLTE 要素の範囲外をクリックした際に、指定のクラスを外す方法