#javascript #jquery #backbone.js #backbone-events
#javascript #jquery #backbone.js #backbone-события
Вопрос:
В следующем коде:
var AppView = Backbone.View.extend({
events:{
"click .button":"cancel"
},
cancel:function() {
console.log("do something...");
},
onSomeEvent: function() {
this.$el.undelegate('.button', 'click', this.cancel);
}
});
var view = new AppView();
Мне нужно отменить this.cancel
удаление обработчика из элементов с « button
классами. К сожалению this.$el.undelegate
, метод OnSomeEvent не работает.
Как я мог удалить этот обработчик событий?
Комментарии:
1. попробуйте
this.$el.off('click', '.button', this.cancel);
2. К сожалению, это не работает: (
Ответ №1:
попробуйте что-то вроде:
....
onSomeEvent: function() {
this.delegateEvents(
_(this.events).omit('click .button')
);
}
Обновить:
вы имеете в виду, как:
this.events[event] = "someEvent";
//call delegateEvents() on the view to re-bind events
this.delegateEvents();
Комментарии:
1. Спасибо за ответ, но мне нужно подписаться только на это. отменить обратный вызов вместо all.
2. Спасибо за ответ. Могу ли я также добавить некоторые события в this.events?
3. @Erik см. Добавленный ответ