Ho una funzione che toglie l'id di youtube da un url. Quindi desidero utilizzare questa funzione 10 volte per pagina (nel ciclo wordpress).Come posso rendere una funzione definita in jQuery.ready disponibile globalmente?
La funzione funziona alla grande quando inserisco l'url all'interno dei tag di script della mia funzione, ma quando avvio un nuovo set di tag di script all'interno del ciclo, non funziona.
Ho bisogno di sapere come posso usare la mia funzione senza dichiararla prima.
quindi questo è il codice che ho nell'intestazione:
<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"));
});
Ma quando provo utilizzare questo un altro punto della pagina, non lavorare.
<script type="text/javascript">
$(document).ready(function() {
alert(getList('http://www.youtube.com/watch?v=dm4J5dAUnR4', "v"));
};
</script>
Firebug mi dà getList non è definito che ha un senso, perché la sua non. Posso dichiarare questa funzione "globalmente"?
Siamo spiacenti per la scarsa formattazione, ogni volta che modifica il codice, risulta strano. Il codice è valido – wesbos
Una cosa BTW - dichiararlo all'interno di document.ready significa che è definito solo quando il documento è pronto (dopo che la pagina è stata caricata) quindi dovresti chiamare la funzione quando sei sicuro che sia definita. Dichiararlo come un oggetto globale potrebbe non essere sufficiente se la dichiarazione stessa viene eseguita dopo aver provato a utilizzarla. –