Если я вижу это правильно, каждый случай имеет следующую последовательность вызовов:
.myAnimation();
.myAnimation({ top : 80 });
.myAnimation({ top: 160 });
.myAnimation({ top: 240 });
.fadeInCloseLink();
... и меняется только то, какие элементы вызваны.Так что это наша первая возможность для рефакторинга.
Вторая, вероятно, что мы можем сделать таблицу поиска:
var elementMap = {
"biography": [1, 2, 3, 4, 5],
"blog": [0, 2, 3, 4, 5],
"diary": [0, 1, 3, 4, 5],
"reviews": [0, 1, 2, 4, 5],
"images": [0, 1, 2, 3, 5],
"contract": [0, 1, 2, 3, 4]
};
и так:
var elements = elementMap[history];
rpsObject.boxId[elements[0]].myAnimation();
rpsObject.boxId[elements[1]].myAnimation({ top : 80 });
rpsObject.boxId[elements[2]].myAnimation({ top: 160 });
rpsObject.boxId[elements[3]].myAnimation({ top: 240 });
rpsObject.boxId[elements[4]].fadeInCloseLink();
Теперь, будь тоэто более приемлемо, это другой вопрос, но, обладая более широкими знаниями о проекте в целом, вы вполне можете применять методы таким способом, который одновременно является кратким и обслуживаемым.