evento drop não disparando na exibição de backbone
Eu estava feliz em codificar e aprender backbone quando isso # ~ @@! aconteceu!
Eu uso exigem para separar minhas visões de modelos, etc.
Na minha visão de backbone eu lidei com esses eventos:
define(['...'],function(...) {
var DishView = Backbone.View.extend({
template: _.template(dish),
tagName: 'div',
id: 'dish',
initialize: function() {
console.log('initializing dishView');
this.model.on('change', this.render, this);
},
render: function(){
console.log('rendering dishView');
this.$el.html(this.template(this.model.toJSON()));
return this;
},
events: {
'click #relations-menu .newItem': 'launch_modal_relations',
'click #delete' : 'delete_dish',
'click #save-basic-changes': 'save_basic',
'drop #dropPicture' : 'dropHandler',
'dragenter #dropPicture' : 'alertMe'
},
alertMe: function () {
console.log('clicked on image');
},
delete_dish: function () {
this.model.deleteMyself();
Backbone.history.navigate('/', {trigger: true});
},
save_basic: function (event) {
var name = $('#inputName').val();
var description = $('#inputDescription').val();
var price = $('#inputPrice').val();
this.model.updateBasicInfo(name, description, price);
},
dropHandler: function(event) {
event.preventDefault();
console.log('drop received');
event.stopPropagation();
var e = event.originalEvent;
e.dataTransfer.dropEffect = 'copy';
this.pictureFile = e.dataTransfer.files[0];
...
},
return DishView;
});
Meu arrastar e soltar estava funcionando e, de repente, quando mais funcionalidades foram adicionadas, ele parou de funcionar :( o arquivo de imagem é aberto no navegador.
Eu li sobre o DOM estar pronto e que isso pode acontecer às vezes (se o código é avaliado quando o DOM está pronto)mas os eventos click ainda são disparados, também o evento dragenter ....
Isso poderia ser algum erro de digitação? Eu estou um pouco louco Eu não consigo entender o que está acontecendo e não consigo me lembrar de um bom compromisso para voltar e checar:
Obrigado a todos se puderem mostrar algumas respostas possíveis :)
Por exemplo: - como posso depurar o evento drop? - como posso saber se um evento está vinculado à minha visão?