一度追加します。私はそれをきれいにしたい事業部は、私は、次のコードを持っていた
ので、私はこれを試してみました:
var $accordionOption = $('<div />', {
"class": "option",
"data-select": 'option',
"data-action": 'makePie'
});
switch (caseType) {
case "dates":
$.each(array.reverse(), function (index, arr) {
$accordionOption.text(arr);
$accordionOption.appendTo($accordionOptionContainer);
});
break;
case "cohort":
$.each(array, function (index, arr) {
$accordionOption.text(arr);
$accordionOption.appendTo($accordionOptionContainer);
});
break;
case "period":
$.each(array, function (index, arr) {
$accordionOption.text(arr);
$accordionOption.appendTo($accordionOptionContainer);
});
break;
}
$accordionOption.click(function() {
cache.select(this);
});
しかし、私はそれが唯一のループで最後の配列項目を追加することに気づきました。これは毎回変数を再作成する必要があるためですか?それとも、追加する前にアコーディオンオプションにすべてを追加しているからですか?同じ変数を上書きするか?
私の最終的な解決策:
function getDiv() {
return $('<div />', {
"class": "option",
"data-select": 'option',
"data-action": 'makeTable'
});
}
$.each(caseType == "dates" ? array.reverse() : array, function (index, arr) {
var $accordionOption = getDiv()
.text(arr)
.click(function() { cache.select(this) })
.appendTo($accordionOptionContainer);
});
だけ動作しませんでした。1. – BenG