私は最初、このコードを書くときにJSのベストプラクティスを使用することからタスクを開始しましたが、苦労していたので、それを機能させるために大きなずさんな混乱として記述し、事後にクリーンアップしようとしました。(それは良い考えではなかったと主張するかもしれませんが、それは私が今いる場所でできる最善のことでした。)
上司は、カスタムトリガーとイベントを使用するように提案しましたが、それは実際には最善の方法ではありませんでした。OOJSのRebeccaMurphyによるこの記事も読んだのですが、答えがあるように見えましたが、そこにたどり着くことができませんでした。
私はこれを書くためのよりエレガントな(そしてステートメントに依存しない場合はネストされていない)方法を明確に探しており、その問題に関する助けを間違いなく感謝している一方で、役立つパターンも探していることを覚えておいてください私はここで私のより大きな文体の欠点に取り組み、より良いプログラマーになります。たとえば、これがDOMをトラバースするための最も不格好で最も遅い方法であることを私は知っています。
重要な注意事項:この状況では、マークアップの多くを制御できません(JS / CSSフックとしてクラスを追加することを除いて)。これは、SimpleForm Ruby gemによって生成されているためです(私の低さのためにリンクできません)スコア)。そして、CSSは無関係です。つまり、実際にはJSだけです。
コンテクスト
選択ボタンまたはラジオボタンの選択に基づいて、特定のものが表示/非表示になります。
編集:申し訳ありませんが、ここでHTMLがおかしくなったので、jsFiddleを作成しました。
編集2:私たちはjQuery 1.6.4を使用しているので、なぜ私がの.delegate
代わりに使用したのか疑問に思っているのなら.on
、それが理由です。