为什么有些事件在骨干中不起作用

时间:2014-04-17 07:37:53

标签: javascript backbone.js

在事件哈希中,我想使用resize事件,但是他们 不要工作。但是,点击事件效果很好。为什么调整大小不起作用?

var SubheaderView = Backbone.View.extend({

    id: 'gallery',
    tagName: 'div',

    events: {
        'click #minor': 'getPadding',
        'resize #minor': 'getPadding' //not work
    },

    initialize: function() {
        this.render();
    },

    render: function() {
        this.$el.append(subheaderTemplate);
    },

    getPadding: function() {
        var pad_top = Math.floor($('#minor').height() * 0.4);
        var pad_left = Math.floor($('#minor').width() * 0.07);
        var pad = pad_top + 'px 0px 0px ' + pad_left + 'px';

        $('#cover h1').css({'padding': pad});
    }
});

2 个答案:

答案 0 :(得分:2)

它根本与Backbone无关。根据{{​​3}},只有windowresize个事件。

答案 1 :(得分:0)

您可以这样做: 将此代码添加到您正在使用的backbone.js文件中

Backbone.View.prototype.eventAggregator = _.extend({}, Backbone.Events);
  $(window).resize(function () {
  Backbone.View.prototype.eventAggregator.trigger('window:resize');
});

然后将事件聚合器绑定到任何想要使用resize事件的视图

this.eventAggregator.bind('window:resize',this.resize)

其中this.resize是要为resize事件调用的函数