jQuery .load() 失败
Posted
技术标签:
【中文标题】jQuery .load() 失败【英文标题】:jQuery .load() failure 【发布时间】:2018-02-09 00:14:36 【问题描述】:我正在尝试运行在以下链接中找到的答案: Asynchronously Load the Contents of a Div
但是当我这样做时,我会得到我不太理解的错误。
我的代码:
$(document).ready(function()
$("#first").load(function()
$("body").append($("<div></div>").attr(
id: "second"
).text("Second"));
$("#second").load(function()
$("body").append($("<div></div>").attr(
id: "third"
).text("Third"));
);
);
);
<html>
<head>
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-
3.2.1.min.js"></script>
</head>
<body>
<div id="#first">First</div>
</body>
</html>
我从 Chrome 返回的错误很广泛。但这里是亮点:
Uncaught TypeError: a.indexOf is not a function
at r.fn.init.r.fn.load (jquery-3.2.1.min.js:4)
at HTMLDocument.<anonymous> (temp.html:6)
at j (jquery-3.2.1.min.js:2)
at k (jquery-3.2.1.min.js:2)
有什么想法吗?
【问题讨论】:
"Uncaught TypeError: a.indexOf is not a function" error when opening new foundation project的可能重复$("#first")
不等于 <div class="#first">
<div>
没有 load
事件。只有从外部资源中填充的元素,例如 <img>
和 <script>
才会触发 load
事件。
【参考方案1】:
您的第一个问题已通过以下方式解决:
$("#first").on('load', function()
*code to be executed*
.load
自 jQuery 1.8 起已被弃用
您提到的第二个问题是只创建了第一个 div,因为您在加载第二个 div 时尝试执行下一个函数来创建第三个 div,但实际上第二个 div 没有加载,因为您正在附加它所以在这种情况下没有负载发生。
您可以一个接一个地附加,假设您正在尝试这样做,它们将按顺序显示。
【讨论】:
【参考方案2】:此错误可能是由 jquery 事件别名引起的,例如 .error
、.load
或 .unload
。自 jQuery 1.8
以来,这些已被弃用。您需要将它们替换为 .on()
来注册侦听器。示例:
$(window).load(function()
...
);
变成:
$(window).on('load', function()
...
);
所以尝试使用.on()
【讨论】:
谢谢!错误消失了,但只出现了第一个“第一个”div。未创建其他 div。以上是关于jQuery .load() 失败的主要内容,如果未能解决你的问题,请参考以下文章
history.pushState URL与jquery的交互导致页面获取失败?
Jquery .load() 在 Django 模板中不起作用
使用 nltk.data.load 加载english.pickle 失败