【发布时间】:2012-10-15 14:13:01
【问题描述】:
我有一个应用程序,它有一个带有 DIV 的页面,当用户单击我的导航栏的一部分(包含在同一页面中)时,它会更改其内容。
这是我的单页应用程序中的 div
<div id="content">
</div>
现在我使用 jQuery .load() 方法用其他 html 文件填充这个 DIV(输入到 .load 方法中的 HTML 文件,我已经剥离了标签等......)
这是我的 JavaScript
$("#content").load("views/"+ pageName + ".html", function(){
// do stuff… like load JavaScript files, etc...
}).fadeIn("fast");
这工作正常,但是使用 .load() 带到页面的内容我希望在它加载到 DOM 后附加一个函数。
假设我使用上面的 JavaScript 从 HTML 页面加载()以下内容
<p id="newText"> Blah blah blah blah blah blah blah blah blah blah blah</p>
我希望在加载后引发一个事件,但是我不确定我应该将它绑定到什么,例如 .live()、.on() 或 .ready()……我在想这样的事情……
$('#newText').load(function() {
alert("Handler for .load() called for newText. This is in the DOM and loaded!");
});
有人知道我应该怎么做吗?
* 更新 *
好吧,也许我需要解释一下...我从另一个开发人员那里继承了这个应用程序,我认为它是用一个糟糕的架构/模型构建的。无论如何,加载的页面或视图有很多隐藏的选项卡/切换内容(因此我不喜欢该架构),因此尽管加载了视图/HTML,但在首次加载时,其某些内容可能在 DOM 中不可用。这就是为什么我希望在使用 jQuery Ajax .load()
的基础上检测何时将某些内容加载到 DOM 中【问题讨论】:
-
我可能不明白,但为什么不在你的第一个
$('#content').load(url, function() { //do stuff here })上使用回调呢? -
更新了我的answer。
标签: javascript jquery