Apelarea unei funcții JavaScript din alt fișier
În WordPress, pentru a utiliza $ în loc de prefixul jQuery, am adăugat următorul cod în jurul întregului cod JavaScript:
jQuery(function($) {
...
});
Funcționează bine, dar nu pot apela un obiect din alt fișier JavaScript, persistă următoarea eroare:
Slider is not defined
Acesta este codul meu:
file1.js
jQuery(function($) {
var slider = new Slider();
});
file2.js
jQuery(function($) {
function Slider() {
this.nb_ele = 10;
}
});
Se pare că din cauză că spațiul de lucru al celor două fișiere JavaScript este diferit, acestea nu pot apela funcții unul din celălalt. Există vreo soluție?

Problema pe care o ai este că Slider
nu este accesibil în afara domeniului său de aplicare, deoarece acesta este definit în .ready()
, deși ai folosit o formă prescurtată pentru asta. Funcția trebuie să fie disponibilă în domeniul global:
file1.js
function Slider() {
this.nb_ele = 10;
}
jQuery(function($) {
// ...
});
file2.js
jQuery(function($) {
var slider = new Slider();
});
Dacă dorești ca Slider să rămână în document ready, va trebui să folosești o expresie de funcție pentru a adăuga funcția obiectului global:
jQuery(function($) {
window.Slider= function () {
this.nb_ele = 10;
};
});
Vezi și: https://stackoverflow.com/questions/1449435/splitting-up-jquery-functions-across-files

Am avut aceeași problemă.
O poți rezolva și cu:
var $ = jQuery.noConflict();
$(document).ready(function(){
codul tău aici
});
Trebuie să folosești acest truc în toate fișierele tale JavaScript, adică var $ = jQuery.noConflict();
.
După aceea, Dammeul are dreptate.
