如何在全局上下文中执行jquery文档就绪函数闭包内的函数

时间:2010-09-10 11:11:12

标签: jquery closures global ready

我想执行一个位于jquery文档就绪闭包内的函数。 但我想从全球范围内执行它。

e.g。

$("document").ready(function () {
    function myFunction() {
        alert("test");
    }
});

我可以编写某种“路径”语法,以便进入doc ready闭包吗?

e.g。这是一些伪代码(我已经完成了这个synatx):

document.ready.myFunction();

你可能想知道我为什么要这样做;原因是我可以通过javascript控制台(例如IE开发人员工具栏/ firebug等中的控制台)执行“就绪”功能闭包内的函数。

1 个答案:

答案 0 :(得分:2)

简而言之,你不能,它们只是无法访问......这是闭包的核心功能之一。如果你想在外面使用它,你需要在外面声明它,如下所示:

function myFunction() {
    alert("test");
}
$(document).ready(function () {
  //something..
});

或者将其定义为内部的全局变量(虽然我没有看到 lot 的意义,除非你还有其他一些参考文献):

$(document).ready(function () {
    myFunction = function() {
        alert("test");
    }
});

要定义一个函数并在document.ready上执行它,它可以像这样简单:

function myFunction() {
    alert("test");
}
$(myFunction);

这使得它可以访问并在document.ready上执行一次,不确定这是你所追求的,但它是一个选项。