Данные jQuery () в window.load и document.ready получили неопределенные? - PullRequest
3 голосов
/ 15 декабря 2011

Необходимо сохранить некоторые данные в window.load и извлечь в document.ready:

<script>
   $(window).load(function() { // Store here
      $('img.storable').each(function() {
         $(this).data("key", "value");
         console.log($(this).data("key")); // Output: value
      };
   };

   $(document).ready(function() { // Retrieve here
      $('img.storable').each(function() {
         console.log($(this).data("key")); // Output: undefined!
      };
   };
</script>

Вывод в document.ready равен undefined . Я что-то упускаю из-за событий в Доме?

Ответы [ 2 ]

6 голосов
/ 15 декабря 2011

$(document).ready() запускается сразу после загрузки DOM, но $(window).load() не будет работать до тех пор, пока DOM не загрузится и не будут загружены все ресурсы dom (например, изображения, CSS-файлы и прочее). Это означает, что $(document).ready() будет запущено до того, как вы установите значение.

2 голосов
/ 15 декабря 2011

Я думаю, что готовый документ происходит раньше, чем window.load ... Так должно быть и наоборот

Просто сделайте простой тест:

$(document).ready(function() {
   alert('document ready');
});
$(window).load(function() {
   alert('window load');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...