Вызов JavaScript функции из другого файла
В WordPress, чтобы использовать $ вместо префикса jQuery, я добавил следующий код вокруг всего js кода:
jQuery(function($) {
...
});
Это работает хорошо, но я не могу вызвать объект из другого javascript файла, сохраняется следующая проблема:
Slider is not defined
Вот мой код:
file1.js
jQuery(function($) {
var slider = new Slider();
});
file2.js
jQuery(function($) {
function Slider() {
this.nb_ele = 10;
}
});
Похоже, что из-за того, что рабочие пространства двух js файлов различны, они не могут вызывать функции друг друга. Есть ли решение?

Ваша проблема в том, что Slider
недоступен вне своей области видимости, так как он определён внутри .ready()
, хотя вы использовали сокращённую запись. Функция должна быть доступна в глобальной области видимости:
file1.js
function Slider() {
this.nb_ele = 10;
}
jQuery(function($) {
// ...
});
file2.js
jQuery(function($) {
var slider = new Slider();
});
Если вы хотите, чтобы Slider оставался внутри document ready, вам нужно использовать функциональное выражение, чтобы добавить функцию в глобальный объект:
jQuery(function($) {
window.Slider= function () {
this.nb_ele = 10;
};
});
Смотрите также: https://stackoverflow.com/questions/1449435/splitting-up-jquery-functions-across-files

У меня была такая же проблема.
Вы также можете решить её с помощью:
var $ = jQuery.noConflict();
$(document).ready(function(){
ваш код здесь
});
Вам также нужно использовать этот трюк во всех ваших JavaScript-файлах, я имею в виду var $ = jQuery.noConflict();
.
После этого Dammeul прав.
