Cela dépend de la façon dont vous voulez les choses de portée. Si vous voulez juste barre à portée globale, puis faites ceci:
$(document).ready(function(foo) {
var bar = function() { ... };
window.bar = bar;
});
Rappelez-vous, en JavaScript les seuls blocs de code qui ont la portée des fonctions, donc les variables déclarées dans if{}
, while{}
, et d'autres types de les blocs de code sont globaux à toute fonction dont ils font partie, à moins qu'ils ne soient déclarés.
Si vous utilisez une variable sans la déclarer, qui est la même chose que faire:
// Both of these variables have global scope, assuming
// 'bar' was never declared anywhere above this
window.foo = "Hello World!";
bar = "Hello World!";
Ainsi, l'exemple ci-dessus pourrait être une ligne plus courte en faisant:
$(document).ready(function(foo) {
window.bar = function() { ... };
});
Vous cherchez à appeler bar() depuis $ (document) .ready() ou en dehors de celui-ci (où vous mettez le commentaire)? Voir la réponse de jdangel pour l'intérieur. – Mark
Cela semble contre-intuitif. Pourquoi ne pas déclarer la fonction en dehors de $ (document) .ready() et ensuite appeler la fonction depuis le $ (document) .ready()? – jacobangel
@Mark .. en dehors de cela ... –