У меня проблема с jQuery Ajax.У меня есть функция загрузки:
основной файл, который загружает первую страницу в файл # my_div
ajax.php для загрузки следующей или предыдущей страницык # my_div.
Я добавлю, что это очень упрощенный шаблон, у меня в конечном итоге много функций и вещей.Здесь я представляю основную проблему.
Основной файл:
<div>
<div id="my_div"></div>
<button id="prevstep">back</button>
<button id="nextstep">next</button>
</div>
<script>
jQuery("#my_div").load("http://localhost/ajax.php?section=page1");
</script>
Файл ajax.php:
<?php
if ($_GET["section"] == "page1") {
?>
<div>something part 1</div>
<script>
$("#prevstep").on("click", function() {
console.log("test1 back");
jQuery("#my_div").load("http://localhost/ajax.php?section=page0");
});
$("#nextstep").on("click", function() {
console.log("test1 next");
jQuery("#my_div").load("http://localhost/ajax.php?section=page2");
});
</script>
<?php
} elseif ($_GET["section"] == "page2") {
?>
<div>something part 2</div>
<script>
$("#prevstep").on("click", function() {
console.log("test2 back");
jQuery("#my_div").load("http://localhost/ajax.php?section=page0");
});
$("#nextstep").on("click", function() {
console.log("test2 next");
jQuery("#my_div").load("http://localhost/ajax.php?section=page2");
});
</script>
<?php
}
?>
Сайт работает правильно (библиотека jquery верна, консоль не работает)не возвращает никаких ошибок), но когда я переключаюсь между страницей 1 и страницей 2 - консоль возвращает странные значения после повторной загрузки той же страницы.
Например:
- Загрузить основной файл, консольничего не возвращается - хорошо
- Нажмите кнопку «Далее», консольный возврат:
test1 следующий
Нажмите кнопку «Назад» (для возврата со страницы 2 на страницу 1), возврат консоли:
тест1 назад
тест2 назад
Снова нажмите кнопку «Далее» (для перехода на страницу 2), возврат на консоль:
test1 следующий
test2 следующий
Нажмите еще раз кнопку «назад» (для возврата на страницу1), возврат на консоль:
тест1 назад
тест2 назад
тест2 назад
test2 назад
В третий раз я нажимаю кнопку «Далее», возвращаем консоль:
test1 следующий
test2 следующий
test2 следующий
test2 следующий
Третий раз, когда я нажимаю кнопку «назад», консоль возвращается:
test1 назад
test2 назад
test2 назад
test2 назад
test2 back
test2 back
test2 back
test2 back
Скрипты дублируются при каждой следующей загрузке следующей страницы.
Как решить эту проблему?
Кстати.Я использовал jQuery v2.2.3.