私はかなりjQueryを経験していますが、私はオブジェクト指向のJavascriptを使っています。正しいことをしたいと思っています。ここでjQueryとオブジェクト指向のJavaScript - 私はそれを正しく行うには?
は...私は私のアプローチを改善する方法のヒント/アドバイスをいただければと思い、私はこれまでやっているものの例です:
// create a class for collapsable fieldsets window.CollapsableFieldset = (function() { function CollapsableFieldset(jQObject) { // look for all the legend tags within this fieldset jQObject.find("legend").click(function(event) { // add or remove the "open" class to the fieldset return jQObject.toggleClass("open"); }); } return CollapsableFieldset; })(); jQuery(document).ready(function() { return $("fieldset.collapsable").each(function(i, element) { return new CollapsableFieldset($(element)); }); });
だから、基本的に私が定義するクラスを作成しています私が探している動作とjQueryブロックでは、一致する各オブジェクトを選択し、そのオブジェクトを引数として新しいクラスインスタンスを作成しています。
関数ラッパーは私の考えではありませんでした。実際に私のJSをcoffeescriptで書いています。今ではいくつかの追加ラッピングを行い、余分なリターンを追加しています.OO Jsは必ずしも最適ではないソリューション... jQueryのベストプラクティスはありますか?私は本当にその1つのjQuery()関数の中にすべてのコードを張っているのが好きではありません - それは大きくなるにつれて維持するのがより難しくなります – bodacious
同じスコープであまりにも多くの変数を持つことを心配するなら、の機能の。他の関数の中で関数を定義したり、クロージャで状態をカプセル化する関数を使用することもできます。 –
関連する関数をまとめてグループ化し、それらをオブジェクトメソッドとして呼び出すことはどうでしょうか?例:commentsForm.load()//コメントフォームに関連するすべてのjQueryを読み込みますか? – bodacious