JSFiddle - React, Tailwind, and code Playground

by cmruser

HTML

<div>
  <button data-fs-click="draft">draft</button>
  <button data-fs-click="save">save</button>
  <button data-fs-click="renew">renew</button>
  <button data-fs-click="revise">revise</button>
  <button data-fs-click="close">close</button>
</div>

JavaScript

var FormSubmit = function() {
	
  var data = arguments[0];
  
  var defaults = {
  	event: {
    	local: {
        click: 'data-fs-click',
        change: 'data-fs-change',
        input: 'data-fs-input'
      }
    }
  };
  
  var _this = this;
  
  var helper = {
  	extend: function() {
    
    },
    get: function() {
    
    },
    set: function() {
    
    }
  };
  
  var handler = {
  	click: {
    	add: function() {
      
      },
      delete: function() {
      
      },
      draft: function() {
      	//
        _this.submit();
      },
      save: function() {
      	//
        _this.validate('save');
      },
      renew: function() {
      	//
      },
      revise: function() {
      	//
      },
      close: function() {
      	//
      }
    }
  };
  
  var load = {
  	event: function(group, handler) {
    	for (var type in group) {
        switch (type) {
          case 'click':
          case 'change':
          case 'input':
            var key = '';
            var selector = '[' + group[type] + ']';
            var str = group[type].split('-');
            var datatype = str.indexOf(type);

            str.splice(datatype, 1);
            str.splice("data", 1);
            key = str.join("-");
            if(key !== '') 
              key = key + '-';

            $(document).on(type, selector, function(e) {
              var event = e.type;
              if(event in handler && $(this).data(key + event) in handler[event]) {
                handler[event][$(this).data(key + event)].apply(this, arguments);
              }
            });
          break;
          case 'tab':
            var name = type;
            var selector = group[type];
            $(document).on('click', selector, function(e) {
              var event = e.type;
              if(event in handler) {
                handler[event][name].apply(this, arguments);
              }
            });
          break;
        }
      }
  	}
  }
  
  _this.validate =...