Jquery Mobile: выберите поле в заголовке - PullRequest
7 голосов
/ 04 июля 2011

Можно ли добавить поле выбора внутри заголовка?

Я проверял этот код

<div data-role="header" data-position="inline" data-theme="b">
    <h1>My Page</h1>
    <select>
        <option>Option 1</option>
        <option>option 2</option>
    </select>
 </div>

, но он не работает

Редактировать:

извините, потому что вопрос не так ясен.С помощью приведенного выше кода у меня есть поле выбора в заголовке, но поле выбора находится по центру (под заголовком страницы).Что я хочу, это то, что выбор находится справа (как кнопка внутри заголовка).

| [назад] --------- Название ----------- [выбрать поле] |

Ответы [ 2 ]

4 голосов
/ 04 июля 2011

Что вы видите / не видите точно?Я поместил ваш код на страницу jQuery Mobile, и в заголовке страницы я получил поле выбора, как и ожидалось.Вот фрагмент кода, который я использовал, который проверяет OK в Desktop и Mobile Safari (iPad):

<body>
  <div data-role="page" id="somepage" data-theme="c">
    <div data-role="header" data-position="inline" data-theme="b">
      <h1>My Page</h1>
      <select>
       <option>Option 1</option>
       <option>option 2</option>
      </select>
    </div>
    <!-- rest of page -->
  </div>
<body>

EDIT Я думаю, что проблема, с которой вы столкнулись, заключается в том, что h1конечно, блочный элемент, как и поле select, когда jQM запустит свой код.Если вы проверите поле после визуализации страницы в браузере WebKit, вы увидите, что jQM применяет дополнительные div-ы и т.п., что означает, что поле выбора не может легко находиться в той же строке, что и ваш заголовок.

Согласно документации, вам нужно поэкспериментировать с пользовательской разметкой в ​​заголовке, поместив ее в свой собственный div (чтобы jQM не пытался манипулировать ею), а затем стилизовать ее самостоятельно.Вид, которого вы хотите добиться, лучше всего делать при создании панели заголовка с двумя ссылками, но, очевидно, это не относится к вам, поскольку вторая «кнопка» не является ссылкой, это поле select:

Плагин заголовка ищет непосредственные дочерние элементы контейнера заголовка и автоматически устанавливает первую ссылку в левом слоте кнопки, а вторую ссылку - в правой.В этом примере кнопка «Отмена» появится в левом слоте, а кнопка «Сохранить» появится в правом слоте в зависимости от их последовательности в исходном порядке.

Вы можете попробовать сделать что-то подобноечтобы выдумать, но вам нужно протестировать на устройствах, которые вы поддерживаете в своем приложении (и, очевидно, поместить стили в класс, я сделал это только для примера):

<div data-role="header" data-position="inline" data-theme="b">
  <h1>My Page</h1>
  <div data-role="fieldcontain" style="position: absolute; top: 0; right: 0; margin: 0; padding: 0">
    <select>
      <option>Option 1</option>
      <option>option 2</option>
    </select>
  </div>
</div>
...
1 голос
/ 04 января 2014

Если вы хотите использовать фактический элемент Select, инкапсуляция его в тег привязки с data-role="none" сработала для меня.

, например

<div data-role="header">
    <a data-role="none">
        <select>
            <option value="1">Option One</option>
            <option value="2">Option Two</option>
        </select>
    </a>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...