Я сделал фотогалерею и работает на AJAX. Ниже приведены соответствующие фрагменты кода.
if (isset($_POST['stopss'])){
echo'<script type="text/javascript">
clearTimeout(setss);
</script>';
}
if (isset($_POST['startss'])){
?>
<script type="text/javascript">
var setss = window.setTimeout('delayer(\''+src+'\',\''+dir+'\',\''+title+'\',\''+width+'\',\''+height+'\',\''+img+'\')',5000);
</script>
<?
}
Функция отсрочки передает параметры для нового окна модального окна (новый запрос AJAX).
Проблема, как я это вижу. Тайм-аут начинается, когда пользователь нажимает кнопку «Слайд-шоу».
Даже несмотря на то, что они нажимают кнопку «Остановить слайд-шоу» (это перезагружает страницу AJAX), таймер все еще работает (в фоновом режиме) и в clearTimeout (наборы) наборы больше не доступны (из-за нового запроса страницы AJAX), поэтому clearTimeout не удается очистить.
Есть ли способ убить время ожидания в фоновом режиме? Даже если окно modalbox закрыто, через 5 секунд оно открывается и успешно продолжает показ слайдов.
Кстати, это вызов modalbox.
Modalbox.show ('../ b-gal-scripts / ajaxgal.php', {title: title, overlayOpacity: .1, ширина: ширина, высота: высота, метод: 'post', параметры: {src: next, dir: dir, img: img, ssimg: next}}); вернуть ложь;