- view.html:
Код: Выделить всё
Boilerplate HTML Page
Welcome to My Page
This is a simple boilerplate HTML page.
© 2024 Your Name
- helper.js:
Код: Выделить всё
// document.addEventListener("DOMContentLoaded", function() {
$(document).ready(function () {
var initPicker = function () {
console.log("helper");
};
var init = function () {
$.getScript("picker.js")
.done(function () {
initPicker();
})
.fail(function (ex) {
console.error("Failed to load the picker script.");
});
};
init();
});
- picker.js:
Код: Выделить всё
var cp = cp || {};
// document.addEventListener("DOMContentLoaded", function() {
$(document).ready(function () {
cp.picker = (function($) {
console.log("picker");
})($);
});
Однако, если вы измените jquery с 2.2.4 на 3.7.1 (и никаких других изменений), то сначала вы увидите зарегистрированный «помощник» и "Picker" регистрируется вторым.
Кроме того, замена двух вызовов $(document).ready на ванильный javascript document.addEventListener("DOMContentLoaded") приведет к получению только "помощника" logged, а «выборщик» вообще не регистрируется.
Я пробовал много разных вещей, таких как использование обещаний, изменение значений отложенных и асинхронных значений и т. д. Кажется, ничего не работает, если:
- Вы меняете версию jquery обратно на 2.2.4.
- Вы фактически импортируете ее раньше в заголовке view.html.< /li>
Вы удаляете $(document).ready, который обертывает файл «picker.js».
Мне нужно выяснить, как обновить это таким образом, чтобы после загрузки загружались и "picker.js", и "helper.js". DOM готов, и "picker.js" загружается раньше "helper.js" с минимальными изменениями, а не одним из трех перечисленных выше вариантов.
Подробнее здесь: https://stackoverflow.com/questions/790 ... and-jquery
Мобильная версия