Javascript 页面加载完成后,如何调用函数?(只有在那时……)
我在一些jquery代码方面遇到了问题。 在我的HTML页面中,我使用ajax获取一些信息,然后我正在更改一个HTML元素 带有Javascript 页面加载完成后,如何调用函数?(只有在那时……),javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我在一些jquery代码方面遇到了问题。 在我的HTML页面中,我使用ajax获取一些信息,然后我正在更改一个HTML元素 带有$(“#id”).html(…) 问题是,我还有一个$(document).ready代码,我只想调用一次 页面加载完成后,但每次更改html后,使用$(“#id”).html(…) 再次调用该代码 如何运行$(文档).ready代码只运行一次 以下是一个例子: $(document).ready(function(){ // this code will ru
$(“#id”).html(…)
问题是,我还有一个$(document).ready
代码,我只想调用一次
页面加载完成后,但每次更改html后,使用$(“#id”).html(…)
再次调用该代码
如何运行$(文档).ready
代码只运行一次
以下是一个例子:
$(document).ready(function(){
// this code will run not only once...
}
function f(){
$("#id").html(...);
}
根据以下评论:
看起来.ready()不仅在页面最初解决了
DOM,但显然也是在对DOM进行更改之后。这是一个问题,如果
您的就绪处理程序将更改DOM。这将导致ready()触发
不止一次。如果每次调用
为DOM添加了更多内容。Firefox和IE的行为与此不同,
包括不同的错误消息,并保留页面显示
不同的州。因此,如果ready()修改DOM,那么
明智的做法是找到一种方法来检查是否已经启动了ready
回答赛尔夫:看来问题的一部分并不是这样
ready函数再次启动(尽管这是可能的),
但是更改DOM会导致创建就绪的脚本
再次启动的功能,添加额外的就绪功能等。
如果javascript以一定的速度嵌入到html中,则似乎会发生这种情况
超出(或包含在)DOM中已准备就绪的部分的点
处理程序修改。(显然,最好是这样写
在文档头中创建就绪函数,但在本例中
不可选项。)通过检查全局标志变量
在执行jQuery(document).ready(…)之前未定义
如果这可能是您的问题,您可以采用相同的解决方案:
var onLoadFired = false;
$(document).ready(function() {
/* Ensure this function only runs once */
if (onLoadFired) {
return;
}
else {
onLoadFired = true;
}
/* Business logic */
// .. your code here ..
});
或者,最好将处理程序移动到一个单独的脚本文件中,该文件包含在页面的头元素中的脚本标记中。尝试:
var run = false;
$(document).ready(function() {
if(!run) {
...
run = true;
}
});
……或者
$(window).load(function() {
...
});
第一个将确保它只运行一次;第二个选项在整个页面加载完成后运行(如果您需要在图像加载完成后调整大小,则此选项非常有用)。尝试以下操作:
$(window).bind("load", function() {
...
});
定义“完成加载”。全部内容?大教堂?什么?你的第二个要求也一样吗?链接?不同的