Я согласен с тем, что сказал дира, но я не думаю, что это исключает продолжение использования обработки событий Backbone.Почему бы просто не привязать Fancybox к div, окружающему div, который является el для вашего View?
Мне удалось заставить это работать в jsFiddle, за исключением того, что у него возникают проблемы с загрузкой либо Backbone.jsили код Fancybox удаленно.Так что это довольно плохой пример, если вы не захотите перезагрузить его полдюжины раз.Вставьте код на страницу, в которую включены все эти файлы, и я обещаю, что это будет работать, хотя, на самом деле, я проверял это:
Вот HTML:
<div style="display:none">
<div id="popupView">
This is some example stuff for the Fancybox.
It could have been generated by a template just as easily.
<a id="clickMe">Click Here!</a>
</div>
</div>
<p>
<a id="popupTrigger" href="#popupView">
Popup a Fancybox containing the results</a>
</p>
И вотJavaScript, чтобы пойти с ним:
$(document).ready(function () {
var TestView = Backbone.View.extend({
el: "#popupView",
events: {
"click #clickMe": "clickMe"
},
clickMe: function () {
alert("You clicked it! You seem like that type.");
}
});
var view = new TestView({
"el": "#popupView"
});
view.render();
$("#popupTrigger").fancybox();
});
Примечание: этот код работает, несмотря на то, что нигде нет никаких дополнительных оболочек.Вы можете нажать на ссылку в Fancybox, и соответствующий код в представлении сработает.