在 $('document').ready 中调用一个函数

Lau*_*ura 2 javascript ajax pjax

我在$('document').ready.

$('document').ready(function() {
  function visit(url) {
    $.ajax({
      url: url,
      container: '#maincontainer',
      success: function(data) {
        init();
      }
    });
  }

  function init() {
    ...
  }
)};
Run Code Online (Sandbox Code Playgroud)

但是当我init()在 Chrome 控制台中调用时,我得到:ReferenceError: init is not defined

更新:谢谢大家的帮助。我做到了window.init = init;,而且效果很好。

T.J*_*der 5

您的init函数包含在您传递给 的函数范围内jQuery.ready。这是一件好事,这意味着您没有创建不必要的全局。

如果您需要将函数导出到全局范围,您可以通过显式分配给 on 的属性来实现window,例如:

window.init = init;
Run Code Online (Sandbox Code Playgroud)

由于window是浏览器上的全局对象,这将允许您从 Chrome 的控制台调用它而无需window.前缀。但只有在绝对必要时才这样做,全局范围已经足够拥挤。