Показать сообщение отдельно
  #1 (permalink)  
Старый 07.07.2012, 17:10
Интересующийся
Отправить личное сообщение для Vision Посмотреть профиль Найти все сообщения от Vision
 
Регистрация: 28.03.2012
Сообщений: 10

Ошибка загрузки CSS по событию...
Добрый день. Уважаемые форумчане, столкнулся с необъяснимой для меня проблемой на ровном месте.
Имеется следующий код:
Код:
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>Demo</title>
    <link id="cssStyle" href="" rel="stylesheet" type="text/css">
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript">
        function loadfirst() {$("#cssStyle").attr("href","1.css");alert($(".some").width())}
        function loadsecond() {$("#cssStyle").attr("href","2.css");alert($(".some").width())}
        window.onorientationchange = function() {
          var ww = $(window).width();
          var wh = $(window).height();
          if(ww>wh) {alert("landscape");loadsecond()}
            else {alert("portraite");loadfirst()}
        }
    </script>
</head>

<body>
    <a href="#" onclick="loadfirst();">First css load</a>
    <a href="#" onclick="loadsecond();">Second css load</a>
    <div class="some"></div>
</body>

</html>
Имеется две ссылки, при нажатии на которые подгружается соответствующий стиль (стили подгружаются также при смены ориентации дисплея(для мобилок)).
Файл 1.css:
Код:
.some {
  width:111px;
  height:20px;
  background-color: #1144CC;
}
И файл 2.css:
Код:
.some {
  width:222px;
  height:20px;
  background-color: #1144CC;
}
В итоге после загрузки первого стиля должен вылезть alert со значением 111, а после второго - 222 соответственно. Но при первоначальной загрузке документа и нажатии на любую ссылку - вылазит alert со значением ширины окна! А должен содержать значение ширины элемента .some! Если страницу обновить и опять нажать на любую ссылку - получим верное значение. Но вот на мобильных девайсах (пример айфон) сколько не обновляй - первый клик по ссылке дает ошибочное значение.
Помогите, кто знает решение проблемы!!! ломаю мозг над решением уже неделю, безрезультатно... архивчик с исходником прилагаю

p.s. Еще глюк - загружаем страницу, жмем на 2й ссылке, получаем алерт с кривым значением, жмем ок, жмем на 1й ссылке - вместо "111" получаем "222", т.е. то значение, которое загрузилось перед этим (но тем не менее не показалось), следующие клики уже дают нужный результат. Взрыв мозга
Вложения:
Тип файла: zip test.zip (873 байт, 0 просмотров)

Последний раз редактировалось Vision, 07.07.2012 в 17:17.
Ответить с цитированием