【发布时间】:2019-03-11 11:40:55
【问题描述】:
我对 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 库正确,控制台不返回任何错误),但是当我在 page1 和 page2 之间切换时 - 控制台在再次加载同一页面后返回奇怪的值。
例如:
- 加载主文件,控制台没有返回 - 好的
- 点击“下一步”按钮,控制台返回:
下一个测试1
- 点击“返回”按钮(从第2页返回到第1页),控制台返回:
test1 返回
test2 返回
- 再次单击“下一步”按钮(转到第 2 页),控制台返回:
下一个测试1
下一个测试2
- 再次点击“返回”按钮(返回第1页),控制台返回:
test1 返回
test2 返回
test2 返回
test2 返回
- 第三次点击“下一步”按钮,控制台返回:
下一个测试1
下一个测试2
下一个测试2
下一个测试2
- 第三次点击“返回”按钮,控制台返回:
test1 返回
test2 返回
test2 返回
test2 返回
test2 返回
test2 返回
test2 返回
test2 返回
每次再次加载下一页时,脚本都会重复。
如何解决这个问题?
顺便说一句。我使用的是 jQuery v2.2.3。
【问题讨论】:
标签: javascript php jquery ajax duplicates