2009-03-03 49 views
1

我無法理解在嘗試製作我的第一個大型JavaScript Web應用程序時在概念上應該怎麼做。處理僅適用於特定內容的JavaScript事件

根據用戶選擇的標籤,我在容器內顯示不同的內容。內容不僅僅是文本,而且使用不同的JavaScript函數和事件。我正在使用Yahoo! UI庫的「TabView」實現,但應該處理此問題的方式可能適用於其他Tab方法。

我想在做什麼基本上是以下幾點:

爲每個標籤(例如MYAPP.modules.tabCalendar和MYAPP.modules.tabJournal)創建單獨的模塊。當用戶點擊不同的標籤頁(或者瀏覽器按鈕導航到之前的標籤頁狀態)時,我可以調用MYAPP.modules [oldModule] .disable()和MYAPP.modules [newModules] .enable()。這些函數將訂閱或取消訂閱其自定義事件(例如,附加到容器的常規點擊處理程序)。

處理事件的替代方法可能是使用單個全局點擊處理程序。如果點擊位於容器內部,則確定當前選擇哪個選項卡並將單擊事件發送到MYAPP.modules [currentTab] .onClick()。

或者,全球的click處理程序可能觸發一個自定義事件的模塊已經因爲頁面加載訂閱的,並且每個模塊的onClick事件將運行並確定他們是否應該做任何事情。

似乎有很多選擇,但我一直在尋找資源,談論最好的方式來做這樣的事情。我在正確的道路上嗎?我該如何處理?

+0

您使用的是現有的「TabStrip控件」組件,或者這是爲自己的發明? – 2009-03-03 21:42:47

回答

1

使用已經內置到TabView中的事件排隊你的JS做事情。

http://developer.yahoo.com/yui/tabview/#handlingevents

對於製表變化,你會被告知選擇上一個/下一個選項卡和這樣的應該是綽綽有餘的JS找出它應該做的。如果你想編寫一個翻譯層來查看事件並根據它進行一些很好的事情,但這不是必須的。

1

我對這個問題有點模糊。

  1. 是的,你應該模塊化你的代碼。
  2. 讓每個模塊都設置事件處理程序對其各自容器中的元素。

就是這樣。 YUI TabView處理標籤切換,所以你不需要啓用/禁用任何東西。

相關問題