嗨,我有一些自定义函数包含在 jQuery 的 document.ready 函数中。这些函数中的大多数都是在该函数和工作中使用的,但是在某些情况下,我想从全局范围内访问包含在 this 中的函数。我怎样才能做到这一点?我可以做类似的事情:jQueryReadyScope.myFunctionName('paramaters');
非常感谢。
嗨,我有一些自定义函数包含在 jQuery 的 document.ready 函数中。这些函数中的大多数都是在该函数和工作中使用的,但是在某些情况下,我想从全局范围内访问包含在 this 中的函数。我怎样才能做到这一点?我可以做类似的事情:jQueryReadyScope.myFunctionName('paramaters');
非常感谢。
不,但您可以命名函数并将其传递给.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');
要从全局范围访问它,需要将其分配给全局变量,方法是在您的文档之外声明它已准备好或将其分配为以下属性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();
});
这是一个范围问题,您需要做的就是指定命名空间。在这种情况下,您说的是全局,所以我们将使用 window.
window.myFunction = function() { ... stuff }