Я ищу способ использовать в моем проекте как пользовательские виджеты jQuery (для инкапсуляции моих компонентов пользовательского интерфейса, так и внутренние состояния и пользовательские события, предназначенные для использования во внешней DOM), а также замечательную инфраструктуру "Backbone.js".Одна из основных проблем, с которой я сразу же наткнулся, заключается в том, что если я связываю обработчики событий с корневым элементом моего виджета (для управления поведением ВНУТРЕННЕГО виджета), а затем устанавливаю тот же элемент, что и корневой элемент для представления Backbone, Backbone автоматически отсоединяет ВСЕ существующие ранее события (устанавливаемые моим виджетом) и заменяющие их обработчиками событий, указанными в хэше «событий» представления.
Итак, если я установлю следующие обработчики событий в объявлении моего виджета:
var el = this.element;
el.bind("mouseenter", function (e) { el.css("backgroundImage", "url(over.png)").addClass("selected"); }).bind("mouseleave", function (e) { el.css("backgroundImage", "").removeClass("selected"); });
А затем создать экземпляр моего представления backbone.js:
// "Participant"'s render() creates a DIV and initializes my widget on it
var userView = new this.Views.Participant({ model: user });
$("#somediv").append(userView.render().el);
Мои обработчики событий мыши перестают отвечать!Есть ли способ заставить Backbone управлять своими собственными обработчиками, не затрагивая других?