JavaScript events architecture I have made one architecture on my project and want to know. Is it good or bad?

events = {
      init: function() {
        for (var callback in this.events){
          this.bind(this.events[callback].selector, this.events[callback].event, this[callback], this.events[callback].params || {})
        }
      },
      events: {
        initSettings: {
          selector: ".js-settingsCollapse",
          event: "click",
          params: {
            ss: "11"
          }
        },
        settingTrigger: {
          selector: ".js-settingTrigger",
          event: "click",
          params: {
            ss: "22"
          }
        },
        themeTrigger: {
          selector: ".js-themeTrigger",
          event: "click",
          params: {
            ss: "33"
          }
        }
      },
      bind: function(selector, event, callback, params) {
        $(selector).on(event, params, callback)
      },
      initSettings: function(e) {
        ...
      },
      settingTrigger: function(e) {
        ...
      },
      themeTrigger: function(e) {
        ...
      }
    }


And in document.ready I run the events.init() function. All events in the events.events object takes and bind them using the jQuery method on.
To me the code is a little hard to read in that you have an initialization function, metadata around events to be bound, the binding function, and the callbacks all at the same level in your events object.  How is this any better than just defining all the event bindings within a typical document.ready() block?  At least there, all your code for each binding is kept all in one place, rather than spread out across the different properties in this event object.

To me, something like the following is simply clearer (and would actually be more concise in terms of total characters needed to implement the functionality):

$(document).ready(function() {
    $('.js-settingsCollapse').on('click', function() {
        ...
    });

    $('.js-settingTrigger').on('click', function() {
       ...
    });

    ...
}


I also don't see how your framework will handle event delegation so as to allow for this approach to work with dynamically added elements.

Also, since you are really not using any functionality in jQuery which is not available in regular javascript, you might want to consider dropping the jQuery dependency.