Функция onload внутри документа. уже может быть написана - PullRequest
0 голосов
/ 06 января 2020

Если я пишу так, только функция document.ready вызывается, и onload не выполняется. Правильно ли вызывать функцию onload.

$(document).ready(function() 
{
  alert("document");
    $(window).on('load',function() 
    {
      alert("Loaded");
   });
});

Ответы [ 3 ]

0 голосов
/ 06 января 2020

$ (document) .ready () вызывается, когда dom полностью загружен, а $ (window) .on ('load', function () {}) является обработчиком событий, который выполняется, когда загружается окно, а не Speci c стр. Так что оба они служат разным целям в соответствии с требованием. Поэтому неправильно писать так.

0 голосов
/ 06 января 2020

Если вам действительно нужно убедиться, что оба события сработали, вот как вы это делаете:

var loaded = false;
var ready = false;
function do_the_stuff() {
  if (ready === false || loaded === false) return;
  if (ready && loaded) {
    // do stuff
  }
}
$(document).ready({
  ready = true;
  do_the_stuff();
});
$(window).on('load', function() { 
  loaded = true;
  do_the_stuff();
})

Теперь «материал» будет выполняться только после того, как оба события сработали.

0 голосов
/ 06 января 2020

Нет, в этом случае вы могли бы пропустить событие load.

Если вы хотите перехватить событие загрузки, сделайте это, когда вы перехватите готовый документ:

$(document).ready(function() {
    // ...do whatever you need here, HTML is loaded but images and such aren't necessarily loaded yet...
});
$(window).on("load", function() {
    // ...full window load is done...
});

Но , почти никогда нет причин использовать или этих функций вне библиотеки. Вам нужен ready, только если вы не управляете тегом script (если вы это делаете, поместите его в конец тела непосредственно перед закрывающим тегом </body>, или поставьте defer или [в эти дни] type="module" на нем). Вам нужно load, только если действительно нужно подождать, пока все таблицы стилей, изображения и другие подобные файлы будут загружены, прежде чем ваш код будет запущен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...