2012-08-13 66 views
2

我处于某种情况下,我操纵视图的子元素并且不确定是否正确处理它们。这个具体的例子是我有一个旋转木马的左右按钮在某些事件中消失(例如,如果你在一个方向上到达旋转木马的尽头)。为了操纵这些对象我一直在做这样的事情,但感觉不对:将其他DOM元素添加到主干中的视图

$(this.el).find('.right-paddle').hide(); 

还是以实例调用这样的事情在某些情况下:

this.rightPaddle = $(this.el).find('.right-paddle'); 

使我可以稍后再做这样的事情:

this.rightPaddle.hide(); 

这是不好的形式吗?

+1

OT:使用'this。$ el'而不是'$(this.el)'是一个很好的习惯''http://stackoverflow.com/questions/11512090/whats-the-difference-between-this- el-html-and-this-el-html – fguillen 2012-08-13 09:05:32

回答

2

为了操纵这些对象我一直在做这样的事情 这一点,但感觉不对:

为什么不呢?它有什么问题?写太多了吗?视图被绑定到“父”DOM元素,并且更多的时候他们有一些子元素或元素,它们必须是找到才能操纵它们。这是完全有效的

还是以实例调用这样的事情在某些情况下: 如果你是指它经常是缓存的情况下,因为DOM遍历是昂贵的好习惯。在你的情况下,它似乎是完全有效的。

这是不好的形式?

没有。有多种方法可以做到这一点。做什么使您的应用程序更易于维护和可读,并且不一定会争取过早优化或难以阅读的代码,除非它非常关键(尽管应该仍然易于阅读:)

这是否有助于缓解您的担忧?

+1

是的。这对我来说似乎是好的。当我处理视图中的元素时,我倾向于这样做:'this。$('。right-paddle')。hide()'这是$(this.el).find(' 'right-paddle')。hide();'另外,如果你要访问变量或者为了方便起见,我认为可以指向元素作为变量。就像@PDD说的那样,这是一个“适合你的任何情况”场景。 – jmk2142 2012-08-13 07:00:42

+0

酷,关切完全缓解:) – captDaylight 2012-08-13 13:59:23