Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Объясните, почему так происходит (https://javascript.ru/forum/jquery/39767-obyasnite-pochemu-tak-proiskhodit.html)

ak-o 11.07.2013 11:37

Объясните, почему так происходит
 
Всем привет, есть вот такой код, скажем:

$(function() {
      var obj = {
           test: $('#menu')
      };
});

После загрузки страницы, obj.test равен объекту, но видимо что-то с ним не так, т.к работать с ним не получается.
Проблему решили следующим путем - сам файл, содержащий объекты такого вида, был перенесен в конец файла html перед закрывающим тегом </body>
И о чудо! все работает.
Если смотреть через консоль, то объекты чуточку отличаются друг от друга(при случае когда файл находится в HEAD и ближе к </body>)
Вопрос: почему так происходит,и с чем это может быть связанно?
Интересно узнать причину.Спасибо

рони 11.07.2013 11:41

Цитата:

Сообщение от ak-o
$('#menu')

картинки наверно содержит?

manhun1 11.07.2013 11:47

нет картинок там нет

ak-o 11.07.2013 11:51

код меню

<ul id="menu">
            <li class="menu-item menu-home" onclick="navigate('home')">
                <a href="#"></a>
            </li>
            <li class="menu-item menu-stock" onclick="navigate('stock')">
                <a href="#">акции</a>
            </li>
            <li class="menu-item menu-about" onclick="navigate('about')">
                <a href="#">о компании</a>
            </li>
            <li class="menu-item menu-installment" onclick="navigate('installment')">
                <a href="#">рассрочка</a>
            </li>
            <li class="menu-item menu-contact" onclick="navigate('contact')">
                <a href="#">контакты</a>
            </li>
            <li class="menu-item menu-item-clear"></li>
            <li class="menu-item menu-phone" onclick="navigate('contact')">
                <a href="#">+7 (495) 229 80 84</a>
            </li>
            <li class="menu-item menu-by" onclick="navigate('by')">
                <a href="#">
                    <img class="arrow" alt="" src="style/images/arrow.png" />
                    сделать заказ
                </a>
            </li>
</ul>

картинка есть, одна. в этом может быть проблема?

рони 11.07.2013 11:53

Цитата:

Сообщение от ak-o
Вопрос: почему так происходит,и с чем это может быть связанно?

потому что страница неполностью загружена

$(window).load(function () {
  // манипуляции с готовой страницей
});

рони 11.07.2013 11:53

Цитата:

Сообщение от ak-o
<img class="arrow" alt="" src="style/images/arrow.png" />

а вы говорили картинок нет

рони 11.07.2013 11:54

ak-o,
задайте размер картинке -- а желательно и всем картинкам на странице

ak-o 11.07.2013 12:00

Цитата:

Сообщение от рони (Сообщение 261731)
потому что страница неполностью загружена

$(window).load(function () {
  // манипуляции с готовой страницей
});

а $( document ).ready() не гарантирует полную загрузку страницы?
вроде $(function(){}) является аналогом doc.ready

danik.js 11.07.2013 12:11

является. Странно это. Прям мистика какая-то. Меню точно не генерируется скриптом? Консоль вам в помощь, видимо чего-то не учли.

ak-o 11.07.2013 12:18

Сами удивились такой штуке =) Нет, меню не генерируется.
сейчас занят, может ближе к концу дня выложу пример с этой мистикой


Часовой пояс GMT +3, время: 05:56.