Chiamare una funzione javascript da un altro file
In WordPress, per utilizzare $ invece del prefisso jQuery, ho aggiunto il seguente codice attorno a tutto il codice js:
jQuery(function($) {
...
});
Funziona bene, ma non riesco a chiamare un oggetto da un altro file javascript, persiste il seguente problema:
Slider is not defined
Questo è il mio codice:
file1.js
jQuery(function($) {
var slider = new Slider();
});
file2.js
jQuery(function($) {
function Slider() {
this.nb_ele = 10;
}
});
Sembra che poiché lo spazio di lavoro dei due file js è diverso, non possono chiamare funzioni l'uno dall'altro. Qualche soluzione?

Il problema che hai è che Slider
non è accessibile al di fuori del suo ambito poiché è definito all'interno di .ready()
, anche se hai usato la forma abbreviata. La funzione deve essere disponibile nell'ambito globale:
file1.js
function Slider() {
this.nb_ele = 10;
}
jQuery(function($) {
// ...
});
file2.js
jQuery(function($) {
var slider = new Slider();
});
Se vuoi che Slider rimanga nel document ready, dovrai usare un'espressione di funzione per aggiungere la funzione all'oggetto globale:
jQuery(function($) {
window.Slider= function () {
this.nb_ele = 10;
};
});
Vedi anche: https://stackoverflow.com/questions/1449435/splitting-up-jquery-functions-across-files

Ho avuto lo stesso tipo di problema.
Puoi risolverlo anche con:
var $ = jQuery.noConflict();
$(document).ready(function(){
il tuo codice qui
});
Devi usare questo trucco anche in tutti i tuoi file javascript, intendo var $ = jQuery.noConflict();
.
Dopodiché Dammeul ha ragione.
