長い質問で申し訳ありません。次のコードのようなものがあります。
$("#el1, #el2, #el3, #el4, #el5").on("spinstop", function (event, ui) {
updtpg()
});
#el1
など#el2
はすべてjQuery UI スピナーです。ただし、ページには他のボタン、ドロップダウン、およびチェックボックスの中に 5 つ以上 (約 20 個ありますが、一部は非表示になっている場合があります) があります。関数updtpg
は、スピナーから値を取得し、いくつかの計算を行い、結果の div を更新します。
次のように、各スピナーの jQuery オブジェクトをグローバル オブジェクトに格納しています。
var window.gQ = {};
gQ.$el1 = $("#el1");
gQ.$el2 = $("#el2");
...そしてこれらをupdtpg
関数で使用して、スピナーの値を取得します。私がやりたいことは、このグローバル gQ オブジェクトのプロパティを使用して、これらのスピナーの値を保持することです。ただし、これは次のように各スピナーを接続することを意味します。
gQ.$el1.on("spinstop", function (event, ui) {
gQ.$val1 = gQ.$el1.val();
updtpg();
});
gQ.$el2.on("spinstop", function (event, ui) {
gQ.$val2 = gQ.$el2.val();
updtpg();
});
...など、すべてのスピナーについて。それが理にかなっているなら、私はそれを気にしません。そして、それが私の質問だと思います。それが「正しい」方法ですか?スピナーの 1 つが変更されるたびに各スピナーの val() 関数を読み取る必要がないため、そう思いますが、多くのコードも追加されます。起動するためのかなり反復的なコード。より良い方法があり、ないことが想像できない場合、それは何ですか?
そして、あなたが見た他の何かを自由に修正してください...ええと、改善可能です。前もって感謝します。