title: Which is the best way to add events handler dynamically in Backbone.View?
body: <p>In my previous project , i use Backbone.js of version 1.1.2 , and the <code>Backbone.View</code> is defined as </p>
  
  <pre><code>var View = Backbone.View = function(options) {
      this.cid = _.uniqueId('view');
      options || (options = {});
      _.extend(this, _.pick(options, viewOptions));
      this._ensureElement();
      this.initialize.apply(this, arguments);
      this.delegateEvents();
  };
  </code></pre>
  
  <p>As i update my Backbone to the latest version(1.2.3) , now the <code>Backbone.View</code> is defined as </p>
  
  <pre><code> var View = Backbone.View = function(options) {
      this.cid = _.uniqueId('view');
      _.extend(this, _.pick(options, viewOptions));
      this._ensureElement();
      this.initialize.apply(this, arguments);
  };
  </code></pre>
  
  <p>The difference is the <code>delegateEvents</code> now is moved to the <code>setElement</code> method , thus i can't dynamically change the 
  <code>events</code> property of <code>Backbone.View</code>. But in some situation , i think dynamically change events is needed , for example,
  i have a <code>FileRowView</code> which extends <code>Backbone.View</code> to represent file information , its template html string is :</p>
  
  <pre><code>&lt;li&gt;
      &lt;h3 class="title"&gt;File name&lt;/h3&gt;
      &lt;p&gt;File description &lt;/p&gt;
  &lt;/li
  </code></pre>
  
  <p>The problem the title dom can be clicked and do something , but in other situation it can't be clicked , so in the <code>events</code> hash , i can
  control this behavior in the initialize method just like :</p>
  
  <pre><code>var FileRowView = Backbone.View.extend({
      tagName:'li',
      tmpl:
          '&lt;h3 class="title"&gt;File name&lt;/h3&gt;'+
          '&lt;p&gt;File description &lt;/p&gt;',
  
      events:function(){
          var events = {};
          if(this.options.canClickTitle){
              events['clcik .title'] = this._titleClickHandler
          }
          return events ;
      },
  
      //
      // options = {
      //      canClickTitle:false
      //      ...
      //      ...
      //  }
      //
      initialize:function(options){
          options = _.extend({}, {
              canClickTitle:true
          } , options);
          this.options = options ;
          this.render();
      },
  
      _titleClickHandler:function(){
          console.log('some action');
      },
  
      render:function(){
          var html = _.template(this.tmpl)();
          this.$el.append(html);
      }
  });
  </code></pre>
  
  <p>But in the new version <code>Backbone.View</code> , as the <code>delegateEvents</code> has been added to the <code>setElement</code> method , how can i dynamically add event handler in the <code>events</code> property ?</p>
  
  <p>In the version 1.2.0 the change document say:</p>
  
  <blockquote>
    <p>Views now always delegate their events in setElement. You can no longer modify the events hash or your view's el property in initialize.</p>
  </blockquote>
  
  <p>I don't know why ?</p>