jquery - 在主干中缓存 View 的子元素

标签 jquery backbone.js

我正在尝试缓存(使用 jQuery 选择器) View 中的一些子元素。

var theView = Backbone.View.extend({
    initialize:function(){
        this.$subEl = this.$el.find('.sub-el-class');
    },
    template: Handlebars.compile($('#view-template').html()),
    render: function(){
        this.$el.html(this.template(this.model.toJSON()));
        this.$subEl.hide();
        return this;
    }
});

当我渲染 View 时,$subEl (.sub-el-class) 不会隐藏。我不想每次必须对 .sub-el-class 元素执行某些操作时都使用 jQuery 选择器。

有什么想法不适用于我的代码吗?

最佳答案

this.$subEl = this.$el.find('.sub-el-class');

这是一个指向 .sub-el-class 的指针,您可以在初始化 View 时设置它。

每次调用 this.$subEl 时都已准备好一个 jQuery 对象,因此它不会再次搜索 DOM。

关于jquery - 在主干中缓存 View 的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15022422/

相关文章:

jquery droppable 方法的回调被调用两次

javascript - 使用 MVC/Backbone.js 实现复合模式

javascript - Marionette Collection View,获取集合不会触发事件

javascript - 主干集合获取渲染在第一次加载时使用路由器运行两次

javascript - 如何向预加载器添加延迟,以便即使在页面加载几秒钟后预加载器也会显示

c# - 该字段必须是日期 - DatePicker 验证在 Chrome 中失败 - mvc

javascript - 按下后停止按钮 Action

javascript - Braintree 付款不适用于 AJAX 提交

javascript - 计算多个数字字段的值 - Jquery

backbone.js - _ 未定义 _.extend(Model.prototype, Events, { 但它在包含的文件中