Javascript 在jquery加载之后如何调用函数
我使用jQueryLoad在我的主体页面中放置一个html结构。之后,我想调用另一个函数来显示表头。假设在加载后运行该函数。但是,当我在load参数中插入completion函数时,加载永远不会完成。如果我把它取出来,我就不能调用我的函数 app.jsJavascript 在jquery加载之后如何调用函数,javascript,jquery,load,innerhtml,Javascript,Jquery,Load,Innerhtml,我使用jQueryLoad在我的主体页面中放置一个html结构。之后,我想调用另一个函数来显示表头。假设在加载后运行该函数。但是,当我在load参数中插入completion函数时,加载永远不会完成。如果我把它取出来,我就不能调用我的函数 app.js function insertHTML(){ var thead = document.getElementByID("thead"); thead.innerHTML = theadOutput(); //function works
function insertHTML(){
var thead = document.getElementByID("thead");
thead.innerHTML = theadOutput(); //function works fine
}
window.onload = function(){
$(body).load(body_loc, insertHTML());
}
您需要传递函数引用,而不是调用它:
$(body).load(body_loc, insertHTML);
在函数名之后添加
()
,将调用它。删除它们以传递引用。另外,由于您已经在使用jQuery
,请使用$(document.ready()
而不是window.onload
谢谢Rajesh。你知道为什么必须删除()吗?我在谷歌上搜索了如何通过变量中的参数传递引用,但我不明白Javascript为什么会这样工作。当您在它后面添加()时,您正在调用它,paint是返回值。因此()需要删除。谢谢。我读到过路过裁判vs瓦尔的故事,我想我了解全局。但是我不明白为什么我必须从语法上删除“()”,因为当你编写insertHTML()
时,基本上你是在马上调用insertHTML
函数。而当您将其作为引用传递时,可以决定何时调用它的是.load()
方法的实现。在这种特殊情况下,它将在加载DOM时调用它,这是所需的效果。因此,基本上您是在向load方法传递一个委托,该委托将在以后调用。