我有一个相对简单的网络应用程序,它可以用作我目前正在修改的信息亭。我最初的目标只是让它工作,但现在我正在尝试实施更优雅的方法。
基本背景信息:
- 内容——所有内容都通过 php 来自数据库——要么响应 ajax 调用,要么直接用 php 回显内容(大部分内容)。这部分我已经修改过,虽然仍然不完美,但相当有效/灵活。
- 信息亭的作用 - 我们的客户使用信息亭进行一项或多项调查。一旦表单通过验证,就会提交数据。如果这是最后一次调查,则会话结束。如果有更多调查,他们会继续进行调查。
问题: 我有一堆控制信息亭行为的jQuery 事件处理程序。基本上,行为包括显示/隐藏 DOM 中已经存在的元素,具体取决于信息亭所处的状态。
- 切换指令
- 切换注销屏幕(提前结束调查)
- 转到调查的下一个/上一个问题
- 显示自动注销警告的空闲计时器(再次只是显示/隐藏不是警报)
- 如果回答不足,则显示错过的问题
- 如果通过简单验证,则提交表单
我添加的调查越多,我遇到的特殊情况就越多,jQuery 似乎就越混乱。仅由单选按钮组成的调查很容易(尽管代码仍然不够优雅),但我似乎将那些有问题管道(依赖于其他问题的问题)和文本回复的调查视为特殊情况,我希望可以对 jQuery 采取更加模块化/OOP 的方法。
我考虑过...
- 原型
- jQuery UI 小部件工厂
- 编写我自己的 jQuery 插件
- 编写我自己的 javascript 类
- 淘汰赛.js
- 继续当前的 jQuery 方法,只是清理它
提前感谢您提供专业知识并根据我的项目背景为我指明正确的方向。