_addLoadEvent цього методу потрібно визначити, чи було викликано onload кілька разів, і якщо його викликають кілька разів, кілька викликів виконуються у Window.onload по черзі
Насправді це дуже просто: _addLoadEvent (func) передати функцію в, а потім визначити, чи "зв'язав" window.onload функцію (тобто typeof(window.onload) != 'функція'), а якщо ні — виконати безпосередньо передану функцію func. Якщо вона була «зв'язана», тоді визначте і стару, і нову функцію всередині window.onload і виконайте її одночасно. тобто: window.onload = function(){ oldonload(); func(); }
Якщо сторінка має кілька визначень window.onload, часто виконується лише останнє визначення.
Давайте поговоримо про різницю між window.onload, $(document).ready(function(){}) та $(window).load(function(){})!
Спочатку порівняйте window.onload з $(document).ready(function(){}).
1. Час виконання Windows.onload має чекати, поки всі елементи сторінки, включаючи зображення, будуть завантажені. $(документ).готово()ТакСтруктура DOM виконується після малювання, без очікування завантаження。
2. Запишіть число
window.onload не може бути записаний одночасно, якщо існує кілька методів window.onload, він буде виконуватися лишеОдин $(document).ready() можна записувати одночасномножинні, і може бути виконана
3. Спростіть метод написання
window.onload не спрощений $(document).ready(function(){}) можна скоротити як $(function(){});
Різниця між $(window).load(function(){}) та window.onload полягає в тому, що $(window).load(function(){}) може записувати кілька разів
|