Организация кода js

314
16 ноября 2017, 04:14

Есть функция :

$(function run($) {
  $('.i').on('click', function(){
    $(this).closest('.m').toggleClass('m-open');  
  });
}(jQuery));

Хочется организовать код, например:

(function($) {
/* Glob  */
  (function() {
      window.a = {
      button_toggle: $('.i'),
      menu: $('.m'),
      m_open: $('.m-open'),
      newMenu: $(this.button_toggle).on('click', function(){
      $(this).closest(a.m).toggleClass(a.m_open);
      })
  };
  })();
})(jQuery);

данный вариант не работает (((

Answer 1

$(document).ready(function() { 
 
  window.a = { 
    button_toggle: $('.i').on('click', function(){ 
      $(this).closest(a.menuSelector).toggleClass(a.menuOpenClass);  
    }), 
    menuSelector: '.m', 
    menuOpenClass: 'm-open' 
  }; 
 
});
.i { 
width:100px; 
height:100px; 
background-color:red; 
border:1px solid black; 
} 
 
.m { 
padding:25px; 
background-color:yellow; 
border:1px solid black; 
} 
 
.m-open 
{ 
  display:none; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div class="m"> 
  <div class="i"></div> 
</div>