Почему jquery mobile не отображает весь мой html или не загружает JavaScript? - PullRequest
2 голосов
/ 10 декабря 2011

У меня есть это:

    <title>MyMobile</title>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>

<title>My Mobile</title>

<style type="text/css"> 
    table { width:100%; }
    table caption { text-align:left;  }
    table thead th { text-align:left; border-bottom-width:1px; border-top-width:1px; }
    table th, td { text-align:left; padding:6px;border: inset 1pt} 
</style> 

Если я захожу на страницу вручную, мои элементы таблицы выглядят нормально. Я вижу границы и т. Д. Если я получил страницу с другой мобильной страницы, страница загружается нормально, но таблица CSS не применяется. Нет стилей. Хит refresh, стиль.

Что происходит?

Спасибо.

edit: тоже не загружается мой javascript. обновить. все снова работает.

edit: делает то же самое, если я нажимаю кнопку «Назад» на другой странице. не все загружается.

1 Ответ

7 голосов
/ 10 декабря 2011

Когда у вас есть теги A, JQM по умолчанию использует AJAX для загрузки этих страниц - и затем игнорирует все, кроме того, что включено в элемент div data-role = page.

У вас есть 3 варианта:

  1. Вы можете либо указать JQM всегда отключать AJAX (установив для ajaxEnabled значение false ) и загружать страницы так, как это делают «обычные браузеры» - это также перезагрузит все javascriptвключает в себя, таблицы стилей и т. д. ...

  2. Вы можете включить все разные div-data-role = page внутри ОДНОЙ .html-страницы, чтобы JQM не нужно было ничего загружать при переходе междустраницы

  3. Вы все еще можете использовать AJAX и загружать внешние файлы, но тогда вам нужно будет включить весь ваш код (HTML / CSS / JS) ВНУТРИ самого DIV.Обратите внимание, что в этом случае вам нужно присоединиться к различным событиям (pageinit / beforeshow / show / hide), а не к $ .ready (поскольку JQM позаботится об этом, а DOMContentReady фактически не сработает.

Об этом можно прочитать в документации

Надеюсь, это поможет ...

...