Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jquery加载之后如何调用函数_Javascript_Jquery_Load_Innerhtml - Fatal编程技术网

Javascript 在jquery加载之后如何调用函数

Javascript 在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

我使用jQueryLoad在我的主体页面中放置一个html结构。之后,我想调用另一个函数来显示表头。假设在加载后运行该函数。但是,当我在load参数中插入completion函数时,加载永远不会完成。如果我把它取出来,我就不能调用我的函数

app.js

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方法传递一个委托,该委托将在以后调用。