1

在尝试制作我的第一个大型 Javascript Web 应用程序时,我无法从概念上理解我应该做什么。

根据用户选择的选项卡,我在容器内显示不同的内容。内容不仅仅是文本,还使用不同的 Javascript 函数和事件。我正在使用雅虎!UI 库的“TabView”实现,但处理此问题的方式可能适用于其他 Tab 方法。

我想做的基本上是以下几点:

为每个选项卡(例如MYAPP.modules.tabCalendarMYAPP.modules.tabJournal)创建单独的模块。当用户单击不同的选项卡(或使用浏览器按钮导航到以前的选项卡状态)时,我可以调用MYAPP.modules[oldModule].disable()and MYAPP.modules[newModules].enable()。这些函数将订阅或取消订阅它们的自定义事件(例如,附加到容器的一般点击处理程序)。

处理事件的另一种方法可能是使用单个全局单击处理程序。如果单击在容器内,则确定当前选择了哪个选项卡并将单击事件发送到MYAPP.modules[currentTab].onClick().

或者,全局点击处理程序可以触发自页面加载以来模块已订阅的自定义事件,并且每个模块的onClick事件将运行并确定它们是否应该做任何事情。

似乎有很多选择,但我一直在寻找资源来谈论做这样的事情的最佳方法。我在正确的道路上吗?我该如何处理?

4

2 回答 2

1

我对这个问题有点模糊。

  1. 是的,你应该模块化你的代码。
  2. 让每个模块在其各自容器中的元素上设置事件处理程序。

就是这样。YUI TabView 处理选项卡切换,因此您无需启用/禁用任何内容。

于 2009-03-03T22:59:29.353 回答
1

使用已经内置到 TabView 中的事件来排队你的 JS 做事。

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

对于选项卡更改,您会被告知选择了上一个/下一个选项卡,这样的选项应该足以让您的 JS 弄清楚它应该做什么。如果你想编写一个翻译层来查看事件并根据它做一些事情,这很好,但不是绝对必要的。

于 2009-03-04T04:58:40.253 回答