【发布时间】:2014-08-25 13:42:52
【问题描述】:
所以,我有一个 div (id="content"),我在其中加载从 AJAX 请求获得的各种其他 HTML。我希望能够知道它们何时加载成功,但加载事件似乎不适用于 append()。
我有这个简化的例子来说明情况(在实际情况下,'load' 事件的侦听器注册在不同的文件中,这些文件会在脚本部分中加载)
<html>
<head>
<script
type="text/javascript"
src="http://code.jquery.com/jquery-latest.min.js">
</script>
</head>
<body>
<div id="content"><div>
<script type="text/javascript">
$(document).ready( function () {
// this does not seem to work
$("#myDiv").on('load', function () {
console.log("myDiv loaded");
});
// neither does this
$("#content").on('load', "#myDiv", function () {
console.log("myDiv loaded by delegation");
});
// the content to append will come from the network
$("#content").append($("<div id='myDiv'>myDiv</div>"));
});
</script>
</body>
</html>
当然,实际情况更复杂(加载的数据可以是任何东西),因此这些选项无效:
- 在加载 div 后调用函数
- 在加载的代码中嵌入了一个函数(代码是从模板文件生成的)
【问题讨论】:
-
div 没有要附加的
onload事件,因此它不会被触发。
标签: javascript jquery load append onload