У меня есть JavaScript для трех HTML-разделов, mm
, ss
и pp
. Эти три поля анимируются друг с другом ... Если содержимое внешнего файла изменяется, эти поля обновляются на моей странице. Они обновляются с анимацией.Уборка некоторых нелепых JavaScript-кода
Если mm
изменения, то:
ss
шкуры, затемpp
шкуры, затемmm
шкуры, затем- дивы обновляется, то
mm
шоу, тоpp
показывает, затемss
шоу, затем
Если mm
не меняется, но pp
делает, то:
ss
шкуры, затемpp
шкуры, затем- дивы получить обновленные, затем
pp
показывает, тоss
шоу, затем
Если mm
и pp
не меняются, но ss
делает, то:
ss
шкуры, затем- дивы обновляется, то
ss
, затем
У меня есть этот код работает, но это очень громоздко, и мне интересно, если есть лучший способ сделать то, что я делаю:
if ($('#mm').html() != mm) {
hideElem('.score');
setTimeout(function() {
hideElem('.player');
setTimeout(function() {
hideElem('.match');
setTimeout(function() {
updateElems();
setTimeout(function() {
showElem('.match');
setTimeout(function() {
showElem('.player');
setTimeout(function() {
showElem('.score');
}, inSpeed);
}, inSpeed);
}, outSpeed);
}, outSpeed);
}, outSpeed);
}, outSpeed);
} else if ($('#pp').html() != pp) {
hideElem('.score');
setTimeout(function() {
hideElem('.player');
setTimeout(function() {
updateElems();
setTimeout(function() {
showElem('.player');
setTimeout(function() {
showElem('.score');
}, inSpeed);
}, outSpeed);
}, outSpeed);
}, outSpeed);
} else if ($('#ss').html() != ss) {
hideElem('.score');
setTimeout(function() {
updateElems();
setTimeout(function() {
showElem('.score');
}, outSpeed);
}, outSpeed);
}
Причины setTimeouts является из-за все анимация.
Посмотрите на метод jQuery '.promise()', который позволит вам связывать их через 'then' – Bergi
Хороший пример обратного ад. Вот почему были изобретены обещания и асинхронный/ждущий. –
Вместо этого вы можете использовать '.delay()'. –