ui-toggle-class.js 913 B

123456789101112131415161718192021222324
  1. (function ($) {
  2. "use strict";
  3. $(document).on('click', '[ui-toggle-class]', function (e) {
  4. e.preventDefault();
  5. var $this = $(e.target);
  6. $this.attr('ui-toggle-class') || ($this = $this.closest('[ui-toggle-class]'));
  7. var classes = $this.attr('ui-toggle-class').split(','),
  8. targets = ($this.attr('ui-target') && $this.attr('ui-target').split(',')) || ($this.attr('target') && $this.attr('target').split(',')) || Array($this),
  9. key = 0;
  10. $.each(classes, function( index, value ) {
  11. var target = $( targets[(targets.length && key)] ),
  12. current = target.attr('ui-class'),
  13. _class = classes[index];
  14. (current != _class) && target.removeClass( target.attr('ui-class') );
  15. target.toggleClass(classes[index]);
  16. target.attr('ui-class', _class);
  17. key ++;
  18. });
  19. $this.toggleClass('active');
  20. });
  21. })(jQuery);