code: function (event) {
              var args = slice.call(arguments, 1);
              var _trigger = function (subViews) {
                  var i = -1;
                  var len = subViews.length;
                  var subSubs;
                  var stopPropogation;
                  var descend;
                  while (++i < len) {
                      descend = true;
                      subViews[i].trigger.apply(subViews[i], args);
                      stopPropogation = subViews[i]._stopPropogation;
                      if (stopPropogation && stopPropogation[event]) {
                          stopPropogation[event] = false;
                          descend = false;
                      }
                      subSubs = subViews[i].subViews;
                      if (descend && subSubs && subSubs.length) {
                          _trigger(subSubs);
                      }
                  }
              };
              args.unshift(event);
              args.push(this);
              _trigger([this]);
              return this;
          }
docs: Triggers an event that will trigger on each of the instances
  subViews, and then if a subView has subViews, will trigger the
  event on that subViews' subViews, and so on. If a subView
  calls stopEvent and passes the event name, then the event
  will not trigger on that subViews' subViews. Arguments
  work in the same manner as they do with triggerBubble.
  @memberOf Backbone.BaseView#
  @param {String} event The event name
  @param {...Mixed} [arg] Argument be passed to event callbacks
  @return {Backbone.BaseView}