当用户点击网页中的标签时,该标签打开并从服务器下载相应的页面。当网页下载完成时回调
我想通过Java脚本或jquery在此页面中添加一些UI。我知道我怎么可以添加这个,但问题是如果我执行我的Java脚本函数添加用户界面点击该选项卡,它不起作用,因为相应的页面尚未下载。
基本上,我想知道当页面完全下载时调用这样的函数。
当用户点击网页中的标签时,该标签打开并从服务器下载相应的页面。当网页下载完成时回调
我想通过Java脚本或jquery在此页面中添加一些UI。我知道我怎么可以添加这个,但问题是如果我执行我的Java脚本函数添加用户界面点击该选项卡,它不起作用,因为相应的页面尚未下载。
基本上,我想知道当页面完全下载时调用这样的函数。
在你的页面的正文中添加这个..
<body onload="init()">
</body>
基本上你打电话给你init function
- 其启动所有你想要的网页的正文只加载后其他功能..
下载的一些div元素,实际上,新的html页面不会下载,只有一组div标签下载异步 – Vikas 2012-02-21 05:48:23
真的很难猜到这些东西,当你给我们没有信息。提供一个链接,一个jsfiddle或源代码 – Sinetheta 2012-02-21 05:49:08
@vikas提供你的代码..很难猜到你在做什么..如果你通过ajax来做 - 有一些叫做“onreadystatechange”事件 - 它改变了'readyState' - 所以,一旦准备好的状态是'4'或'100',你就可以在那里添加你的js ..也就是说,'if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {0128]你想在这里用xmlhttp.responseText; }' – 2012-02-21 05:53:30
你用过JQuery成功吗?成功处理程序只有在您的响应准备就绪后才会被调用。 试试这个:
$.ajax({
url: "test.html",
context: document.body,
success: function(){
//Do the stuff here, hence downloading has been completed and response from server is ready
$(this).addUI("done");
}
});
我必须面对这个问题太..这里问题是你的内容尚未公布之前,你可以在它的工作。
你给将导致返回空 该解决方案的任何引用可以.bind()& .live()
想这是你的动态内容
$('body').append('<div class="clickme">Another element</div>');
您可以通过元素绑定,
$('.clickme').bind('click', function() {
// Bound handler called.
});
或注册它的直播内容,通过
$('.clickme').live('click', function() {
// Live handler called.
});
不再需要时,您可以通过.die()
你可能还会发现.delegate() & 退订动态内容的情况下undelegate()很有用,因为与.live()& .die()几乎没有问题。
检查http://www.alfajango.com/blog/the-difference-between-jquerys-bind-live-and-delegate/选择您需要的应用程序。
请记住,不要忘记你确保内容是由ajax成功载入的,因为程序员_1在这里提到。
祝你好运:)
任何进一步的澄清请评论。
能否详细说明“从服务器上下载相应的页面”?你在做什么?使用'$ .ajax()'? – Sinetheta 2012-02-21 05:42:34
是的,页面使用ajax异步下载 – Vikas 2012-02-21 05:46:11
这还没有告诉我们很多,如果你使用jQuery的'.ajax()',那么你必须做一些事情来获取页面中的内容。你真的必须在这里提供一些关于你在做什么的信息(例如:代码)。 – Sinetheta 2012-02-21 05:47:48