私は、バックボーンビューの1つでサイズ変更イベントにハンドラをアタッチしようとしています。いくつかの調査をした後、私はあなたがビューの要素またはその子孫にのみイベントを添付できることを発見しました。バックボーンを使用してビュー内のウィンドウにサイズ変更イベントを追加するにはどうすればよいですか?
これは、私が達成しようとしている視覚効果が純粋な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;
}
);
私の援助をいただければ幸いです。
ありがとう、 アレックス
ありがとうございました!しかし、Backboneのイベント層の外に出るのは悪い習慣ですか? –
私はあまり心配しないと言います。 resizeイベントはMVC構造体と複雑なやりとりをしないので、別のリスナーを持つだけで何かを失うことはありません – wheresrhys
私のことを明確にしてくれてありがとうございます –