【问题标题】:How do I call a function after a jquery loadjquery加载后如何调用函数
【发布时间】:2017-01-09 09:17:16
【问题描述】:

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

app.js

function insertHTML(){
  var thead = document.getElementByID("thead");
  thead.innerHTML = theadOutput(); //function works fine
}

window.onload = function(){
  $(body).load(body_loc, insertHTML());
}

【问题讨论】:

  • 在函数名后添加()会调用它。删除它们以传递参考。另外,由于您已经在使用jQuery,请使用$(document).ready() 而不是window.onload
  • 谢谢拉杰什。您有任何机会知道为什么必须删除 () 吗?我用谷歌搜索了如何使用变量中的参数传递引用,但我不明白为什么 Javascript 会这样工作。
  • 名称是一个函数是它的引用。当您在它之后添加 () 时,您正在调用它并且 paint 是返回值。因此 () 需要被删除。

标签: javascript jquery load innerhtml


【解决方案1】:

你需要传递函数引用,而不是调用它:

$(body).load(body_loc, insertHTML);

【讨论】:

  • 谢谢。我读到了通过 ref vs val 传递。我想我了解大局。但我不明白为什么我必须在语法方面删除 '()'。
  • 因为当您编写insertHTML() 时,基本上您会立即调用insertHTML 函数。而当您将它作为引用传递时,它是 .load() 方法的实现,可以决定何时准确调用它。在这种特殊情况下,它将在加载 DOM 时调用它,这是所需的效果。所以基本上你正在向 load 方法传递一个稍后将被调用的委托。
猜你喜欢
  • 1970-01-01
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 1970-01-01
  • 2016-09-03
相关资源
最近更新 更多