使用jQuery实现Ajax无限滚动时出现语法错误求助
解决无限滚动的语法错误&优化建议
兄弟,我一眼就揪出问题所在啦!你遇到的意外标识符错误,根源就是那个看起来像减号的符号–——这是中文全角的破折号,不是JavaScript能识别的英文半角减号-!输入法切换时的小失误,换个符号就能解决语法报错。
不过我还发现代码里有几个其他小问题,一起给你修正了,让无限滚动功能更稳定:
修正后的完整代码
<!DOCTYPE html> <html> <head> <!-- 修正jQuery引入的script标签写法 --> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> </head> <body> <h1> Pagina ej 7</h1> <p> lorem ipsum and a lot of text </p> <script> // 添加加载锁,防止滚动到底部时多次触发请求 let isLoading = false; $(window).scroll(function () { // 用英文减号替换中文破折号,修正语法错误 if (!isLoading && $(window).scrollTop() == $(document).height() - $(window).height()) { isLoading = true; // 修正load的文件路径,加上.html后缀 $("body").load("Ej7.1.html", function() { // 加载完成后解锁,允许下次加载 isLoading = false; }); } }); </script> </body> </html>
关键修正点说明
- 语法错误核心修复:把
$(document).height() – $(window).height()里的中文破折号–换成英文减号-,JavaScript只会识别英文算术运算符。 - jQuery引入标签修正:原来的
<script> src= "https://code.jquery.com/jquery-3.3.1.min.js" </script>写法有误,正确格式是把src属性放在起始<script>标签内。 - 文件路径修正:
load("Ej7.1")要改成load("Ej7.1.html"),确保能正确定位到目标HTML文件。 - 添加加载锁:滚动事件会在用户滚动时频繁触发,不加锁的话,滚动到底部时会连续发送多个重复的Ajax请求。用
isLoading变量控制,只有加载完成后才允许下一次请求,避免重复加载内容。
这样修改后,语法报错会消失,无限滚动的功能也能稳定运行啦~
内容的提问来源于stack exchange,提问作者M.K
相关产品推荐
相关产品推荐

