Vistas que no lanzan eventos en Backbone.js

Esto sucede porque Backbone.js necesita saber dónde están contenidos los elementos que desencadenarán los eventos. Ya que cuando una vista se visualiza mediante templates vía render(), el atributo el se establece automáticamente.

Pero si esta vista no se renderiza, este mismo atributo queda NULL y al no poder detectar sus elementos listados en Events, nunca los dispara. Es un atributo requerido, bien se establezca manual o automáticamente.

Solución

Establecer el atributo el al objeto contenedor o en ciertos casos contados, al documento por completo, al body.

window.TestView = Backbone.View.extend({ 
  el: $('#element-container'), 
  ...
});

Si aún especificando el atributo el sigue el problema, hay que revisar que los eventos no se solapan, esto es, que varias vistas contengan el mismo tipo de evento y selectores que contengan los mismos objetos.

David Burgos

Read more posts by this author.