我在我的網頁上有很多下拉菜單,都稱爲「更新價格」功能。這是因爲當用戶選擇一個選項時,價格會相應地改變。還有很多其它的下拉列表中,他們都具有相似的名稱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頁面d我不想複製/粘貼該靜態代碼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));
}
ID就像'size-1','size-2'是可以理解的。但爲什麼你會有不同班級的30+下拉菜單呢?一個單一的類作爲'尺寸'將真正解決你的問題。 –
爲什麼不給他們同班? –
同樣在第二個版本中,'.change'中的索引不會是正確的值,因爲執行處理函數時'i'的值將等於'div的數量'。 –