向主干中的视图添加其他DOM元素

向主干中的视图添加其他DOM元素,dom,view,backbone.js,Dom,View,Backbone.js,我正在处理视图的子元素,但不确定是否正确处理了它们。这个具体的例子是,我有一个旋转木马,它的左右按钮在某些事件中消失(例如,如果您在一个方向到达旋转木马的末端)。为了操纵这些对象,我一直在做类似的事情,但感觉不对: $(this.el).find('.right-paddle').hide(); 或者在某些情况下,在实例化过程中调用如下内容: this.rightPaddle = $(this.el).find('.right-paddle'); 这样我以后可以做类似的事情: this.ri

我正在处理视图的子元素,但不确定是否正确处理了它们。这个具体的例子是,我有一个旋转木马,它的左右按钮在某些事件中消失(例如,如果您在一个方向到达旋转木马的末端)。为了操纵这些对象,我一直在做类似的事情,但感觉不对:

$(this.el).find('.right-paddle').hide();
或者在某些情况下,在实例化过程中调用如下内容:

this.rightPaddle = $(this.el).find('.right-paddle');
这样我以后可以做类似的事情:

this.rightPaddle.hide();
这是坏形式吗

为了操纵这些物体,我一直在做 这个,但感觉不对:

$(this.el).find('.right-paddle').hide();
为什么不呢?怎么了?写太多了吗?视图被绑定到“父”DOM元素,并且通常视图中有一些子元素或元素,必须找到这些子元素或元素才能对其进行操作。这是完全正确的

或者在某些情况下,在实例化过程中调用如下内容: 如果您经常引用它,那么缓存实例是一个好习惯,因为DOM遍历非常昂贵。对你来说,这似乎是完全正确的

这是坏形式吗

不,有不止一种方法。做什么使您的应用程序更易于维护和可读,而不一定要争取过早的优化或难以阅读的代码,除非它的性能非常关键(但仍应易于阅读:)


这有助于缓解您的担忧吗?

是的。我觉得没问题。当我在视图中处理元素时,我倾向于这样做:
this.$('.right palle').hide()
,这是
$(this.el.)的快捷方式。find('.right palle').hide()this.$el
而不是
$(this.el)