スニペットに次の関数呼び出し元があります。
// del
if ( maxDelivery > 0 ) {
if ( maxDelivery === 1 ){
delAdressFunc( dels );
} else {
for ( i = 0; i < maxDelivery; i += 1 ){
delAdressFunc( dels[i] );
}
}
}
// ajax
if ( maxAjaxTables > 0 ){
if ( maxAjaxTables === 1 ){
getAjaxTable( ajx, 0 );
} else {
for ( j = 1; j <= maxAjaxTables; j += 1){
getAjaxTable( ajx[j-1], j )
}
}
}
したがって、セットアップは両方の関数呼び出しでほとんど同じです。
質問:
重複するコードを節約するために、両方を単一の「呼び出し元」に結合する方法はありますか?
ありがとう!
編集:
省略して申し訳ありません...dels
そしてajx
、私は次のように構築している両方の要素セレクターです:
dels = $('.selectDeliveryAdress').filter(function() { return $(this).jqmData("bound") !== true; });
maxDelivery = dels.length;
関数が各要素で 1 回だけ呼び出されるようにする必要があるため、 でフィルタリングしjqmData("bound")
て true に設定していますdelAdressFunc()
。
したがって、0、1 (最も可能性が高い)、または 2+ 要素のいずれかになります。ajx
and maxAjaxTables
(= ajx.length ) も同様