Моя проблема: у меня есть JSON Array, содержащий массивы, которые я отображаю в теге body, чтобы он выглядел так:
<body data-flashes="[["message","Welcome"],["error","This is working!"],["",""]]">
я хочу сделать следующее:
- перейти каждый элемент во внешнем массиве
- первый элемент во внутреннем массиве станет именем класса диапазона
- второй элемент во внутреннем массиве станет текстом в диапазоне
- анимация пролета
- подождать 10 секунд
- начать заново
(это всегда один и тот же промежуток)
моя попытка:
window.pause = ( ms ) -> (
date = new Date()
currentDate = null
loop
currentDate = new Date()
break unless currentDate-date < ms
)
window.showFlashes = () -> (
$.each( window.$('body').data('flashes'), () -> (
window.$('#flash_container').attr( 'class', this[0] )
window.$('#flash_container').text( this[1] )
window.$('#flash_container').effect( 'pulsate' )
alert this
pause( 10000 )
)
)
)
это coffeescript, который переводит рельсы в следующий javascript-файл:
(function() {
window.pause = function(ms) {
var currentDate, date, _results;
date = new Date();
currentDate = null;
_results = [];
while (true) {
currentDate = new Date();
if (!(currentDate - date < ms)) {
break;
} else {
_results.push(void 0);
}
}
return _results;
};
window.showFlashes = function() {
return $.each(window.$('body').data('flashes'), function() {
window.$('#flash_container').attr('class', this[0]);
window.$('#flash_container').text(this[1]);
window.$('#flash_container').effect('pulsate');
alert(this);
return pause(10000);
});
};
window.exit_after = function(ms) {
var _results;
setTimeout("return 0", ms);
_results = [];
while (true) {
_results.push(ms = 1);
}
return _results;
};
}).call(this);
Теперь "реальная" проблема: пока у меня есть alert this
в коде, он работает нормально (кроме того, что анимация не работает). но когда я удаляю его, код перестает работать.
и моя вторая проблема: есть ли способ обойти функцию pause
? Я бы предпочел использовать setTimeout()
, но я не знаю, как ...