2009-03-03 50 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处理标签切换,所以你不需要启用/禁用任何东西。

相关问题