0

嗨,我有一些自定义函数包含在 jQuery 的 document.ready 函数中。这些函数中的大多数都是在该函数和工作中使用的,但是在某些情况下,我想从全局范围内访问包含在 this 中的函数。我怎样才能做到这一点?我可以做类似的事情:jQueryReadyScope.myFunctionName('paramaters');

非常感谢。

4

3 回答 3

2

不,但您可以命名函数并将其传递给.ready()

var myFunctionName = function (params) {
   // do things
}

// pass as callback to ready function
jQuery(document).ready(myFunctionName);

// access directly like any other function:
myFunctionName('paramaters');
于 2012-07-11T22:52:58.020 回答
1

要从全局范围访问它,需要将其分配给全局变量,方法是在您的文档之外声明它已准备好或将其分配为以下属性window

var yourGlobalFunction1 = function() { ... }

$(document).ready(function() {
    function privateFunction() { ... }

    window.yourGlobalFunction2 = function() { ... };

    yourGlobalFunction1();
    privateFunction();
    yourGlobalFunction2();
});

yourGlobalFunction1();

// and then at some later point AFTER the document ready has run,
// e.g., in response to some event:
$("#someelement").click(function() {
    yourGlobalFunction2();
});
于 2012-07-11T22:53:54.653 回答
1

这是一个范围问题,您需要做的就是指定命名空间。在这种情况下,您说的是全局,所以我们将使用 window.

window.myFunction = function() { ... stuff }
于 2012-07-11T22:52:35.823 回答