簡體   English   中英

在主干視圖中渲染模板時,為什么滾動事件沒有觸發?

[英]Why does scroll event not trigger when rendering a template in a Backbone view?

此代碼示例中 ,Backbone視圖綁定到預先存在的DOM元素。 滾動事件將按預期觸發。

此替代示例中 ,Backbone視圖將呈現HTML而不是使用預先存在的DOM元素。 滾動事件不會觸發。

為什么?

主要區別在於第二個示例執行此操作:

this.$el.html(template);

這有效:

http://jsfiddle.net/hKWR9/1/

$(function(){
    var MyView = Backbone.View.extend({
        className: 'scrollbox',
        events: {
            'click': 'onClick',
            'scroll': 'onScroll'
        },
        initialize: function() {
            this.render(); 
        },
        render: function() {
            var template = '<div class="filler"></div>';
            $('body').append(this.$el); 
            this.$el.html(template);

        },
        onClick: function() {
            console.log('click');
        },
        onScroll: function() {
            console.log("scroll");
        }
    });

    var App = new MyView();

}());

您的小提琴不起作用,因為您使用類名.scrollbox定義了el,而它本來應該是scrollbox 在此“ .scrollbox”中創建另一個“ scrollbox”似乎沒有好處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM