2012-08-13 64 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