説明:
私のページには、すべて「価格の更新」関数を呼び出す多くのドロップダウンがあります。これは、ユーザーがオプションを選択すると、それに応じて価格が変更されるようにするためです。これらのドロップダウンは多数あり、それらはすべて似たような名前を持っていますsizes-1
, sizes-2
, など
問題
ある種のループを介してバインドする方法がわからないため、非常によく似たイベントバインディングコードをコピー/貼り付けていることに気づきました。
例:
静的
$( '.sizes-1' ).on('change', function() { sizes[0] = $(this).val(); p.update_pricing( slider_values, price_fields, sizes, ); });
ループを試みます (動作していません)
for( index = 0; index < number of divs; index++ ) { $( '.sizes-' + index ).on('change', function() { sizes[ index ] = $(this).val(); p.update_pricing( slider_values, price_fields, sizes, ); }); }
このページには多くの.sizes
div があり、その静的コードを 30 回以上コピーして貼り付けたくありません。誰かが同様の問題に遭遇し、解決策を知っているかどうか疑問に思っていましたか?
どうもありがとうございました。
編集:(コードをコピー/貼り付け)
for( index = 0; index < num_divs; index++ ) {
( function( context_index ) {
$( '.sizes-' + context_index ).on( 'change', function() {
sizes[ context_index ] = $(this).val();
p.update_pricing( slider_values, price_fields, sizes );
});
} ( index ) );
}