Я пытаюсь привязать обработчик к событию изменения размера в одном из моих представлений Backbone. После некоторых исследований я обнаружил, что вы можете прикреплять события только к элементу представления или его потомкам.
Это проблема для меня, потому что визуальный эффект, который я пытаюсь достичь, невозможен с использованием чистого CSS и требует, чтобы некоторые JS устанавливали размеры элемента области содержимого на основе окна минус элемент заголовка.
Если у вас возникли проблемы с визуализацией того, что я пытаюсь сделать, представьте тонкий заголовок и область содержимого, которая должна занимать оставшееся пространство без фонового трюка CSS;)
Я прикрепил пример кода. Если у вас есть другие указатели, я также хотел бы их услышать!
define(
[
'jQuery',
'Underscore',
'Backbone',
'Mustache',
'text!src/common/resource/html/base.html'
],
function ($, _, Backbone, Mustache, baseTemplate) {
var BaseView = Backbone.View.extend({
el: $('body'),
events: {
'resize window': 'resize'
},
render: function () {
var data = {};
var render = Mustache.render(baseTemplate, data);
this.$el.html(render);
this.resize();
},
resize: function () {
var windowHeight = $(window).height();
var headerHeight = this.$el.find('#header').height();
this.$el.find('#application').height( windowHeight - headerHeight );
}
});
return new BaseView;
}
);
Любая помощь будет очень благодарна моему лицу.
Thankyou, Alex