我最初是通过在编写这段代码时尝试使用 JS 最佳实践来开始我的任务的,但我很挣扎,所以我只是把它写成一个大杂烩来让它工作,然后试图在事后清理它。(你可能会争辩说这不是一个好主意,但这是我现在能做的最好的事情。)
我的老板建议我尝试使用自定义触发器和事件,但这似乎并不是最好的方法。我还阅读了 Rebecca Murphy 关于 OOJS 的这篇文章,似乎它可能有答案,但我就是无法到达那里。
请记住,虽然我绝对是专门寻找一种更优雅(并且更少依赖于嵌套的 if 语句)的方式来编写这个并且绝对感谢任何关于这件事的帮助,但我也在寻找可以提供帮助的模式我在这里解决了我更大的文体缺陷并成为一个更好的程序员。例如,我知道这是遍历 DOM 的最笨拙和最慢的方法。
一个重要的注意事项:在这种情况下,我无法控制很多标记(除了将类添加为 JS/CSS 挂钩),因为它是由 SimpleForm Ruby gem 生成的(由于我的低,我无法链接到它分数)。CSS 是无关紧要的。所以它真的只是JS。
语境
根据选择或单选按钮选择显示/隐藏某些内容。
编辑:对不起,我的 HTML 在这里变得很奇怪,所以我只是做了一个jsFiddle。
编辑 2:我们使用的是 jQuery 1.6.4,所以如果你想知道我为什么使用.delegate
而不是.on
,那就是原因。