¿Por qué debo crear un close prototype completo solo para tener mis eventos desagregados de mi vista? ¿No debería Backbone simplemente construir eso? ¿Hay alguna forma de detectar cuándo se está eliminando una vista?Eventos de red troncal que se activan dos veces
Mis eventos principales se disparan dos veces después de que me alejo y regreso a la vista.
events : {
"click #userDropdownButton > a" : "toggleUserDropdownMenu",
"click" : "hideUserDropdownMenuIfClickedOutside"
},
el : "body",
initialize : function() {
this.render();
},
// Shows/hides the user dropdown menu
toggleUserDropdownMenu : function() {
if(!this.$el.find('#userDropdownButton > ul').is(':visible')) {
this.showUserDropdownMenu();
} else {
this.hideUserDropdownMenu();
}
return false;
},
showUserDropdownMenu : function() {
this.$el.find('#userDropdownButton').addClass('hover');
this.$el.find('#userDropdownButton > ul').show();
this.$el.find('#userDropdownButton > a .arrow-down').removeClass('arrow-down').addClass('arrow-up');
},
hideUserDropdownMenuIfClickedOutside : function() {
if(this.$el.find('#userDropdownButton > ul').is(':visible')) {
this.hideUserDropdownMenu();
}
},
hideUserDropdownMenu : function() {
this.$el.find('#userDropdownButton').removeClass('hover');
this.$el.find('#userDropdownButton > ul').hide();
this.$el.find('#userDropdownButton > a .arrow-up').removeClass('arrow-up').addClass('arrow-down');
},
La primera vez que la vista se representa, el menú desplegable se abre y cierra correctamente, pero en el segundo tiempo de la vista se representa, en el menú desplegable interpreta cada clic dos veces, así que tan pronto como se abra, la segunda posición se cierra eso.
Si supiéramos lo que estaba haciendo, probablemente podríamos decirle lo que está haciendo mal. Tal vez si hubiera algún código para mirar ... –
@muistoo código agregado corto :) gracias por los comentarios – Garrett
Llamaré a esto un duplicado de http://stackoverflow.com/q/10966440/479863 o al menos la respuesta es más o menos la misma. –