Объясните, почему порядок операций в jQuery 2.2.4 и jQuery 3.7.1 разный.Jquery

Программирование на jquery
Ответить
Anonymous
 Объясните, почему порядок операций в jQuery 2.2.4 и jQuery 3.7.1 разный.

Сообщение Anonymous »

Дано три файла:
  • 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");
})($);
});
Запустите это с помощью узла или того, что вы используете, откройте журналы консоли js и обновите страницу. Вы увидите, что сначала регистрируется «выборщик», а затем «помощник». Для меня это желаемый случай.
Однако, если вы измените 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»