J'ai une fonction qui dépouille le id de youtube d'une URL. Je veux ensuite utiliser cette fonction 10 fois par page (dans la boucle wordpress).Comment rendre une fonction définie dans jQuery.ready disponible globalement?
La fonction fonctionne très bien lorsque je la charge dans l'URL de mes balises de script de fonction, mais lorsque je lance un nouveau jeu de balises de script dans la boucle, cela ne fonctionne pas.
J'ai besoin de savoir comment je peux utiliser ma fonction sans tout déclarer d'abord.
Donc, c'est le code que j'ai dans l'en-tête:
<script type="text/javascript">
$(document).ready(function() {
var getList = function(url, gkey){
var returned = null;
if (url.indexOf("?") != -1){
var list = url.split("?")[1].split("&"),
gets = [];
for (var ind in list){
var kv = list[ind].split("=");
if (kv.length>0)
gets[kv[0]] = kv[1];
}
returned = gets;
if (typeof gkey != "undefined")
if (typeof gets[gkey] != "undefined")
returned = gets[gkey];
}
return returned;
};
// THIS WORKS
alert(getList('http://www.youtube.com/watch?v=dm4J5dAUnR4', "v"));
});
Mais quand j'essaie d'utiliser ce quelque part ailleurs sur la page, cela ne fonctionne pas.
<script type="text/javascript">
$(document).ready(function() {
alert(getList('http://www.youtube.com/watch?v=dm4J5dAUnR4', "v"));
};
</script>
Firebug me donne getList n'est pas défini ce qui est logique, parce que son pas. Suis-je capable de déclarer «globalement» cette fonction?
Désolé pour la mauvaise mise en forme, chaque fois que je modifie le code, il se avère étrange. Le code est valide. – wesbos
Une chose BTW - le déclarant dans document.ready signifie qu'il est défini uniquement lorsque le document est prêt (après que la page est chargée), vous devez donc appeler la fonction lorsque vous êtes sûr qu'il est défini. Le déclarer en tant qu'objet global peut ne pas suffire si la déclaration elle-même est exécutée après que vous ayez essayé de l'utiliser. –