Отображение диалога из отдельного HTML-файла и передача ему параметра - PullRequest
0 голосов
/ 21 января 2012

Я использую android 2.2, phonegap 1.3 и jquery-mobile 1.0

У меня есть представление списка, в котором есть элемент, который я хочу использовать для создания диалога.Мне бы хотелось, чтобы мой диалог был определен в отдельном файле, чтобы я мог использовать его повторно, и я бы хотел, чтобы он устанавливал заголовок в соответствии со значением, которое я передаю.

Мой диалог выглядит примерно так:

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
$(document).ready(function() {
    $("#title").append(SMSPLUS.queryString("title"));
});
</script>
<title>Dialog</title>
</head>
<body>
<div data-role="page" class="ui-page-z">
        <div data-role="header" data-theme="z" class="ui-bar-z">
    <h1 id="title"></h1>
    </div>
    <div data-role="content">
       ...
    </div>
</div>
</body>
</html>

Я попытался использовать #href с параметром title (как определено ниже), диалоговое окно открыто, но параметр заголовка отсутствует.

<ul data-role="listview" data-theme="a">
    ...
    <li><a href="dialog.html?title=blah" data-rel="dialog"/></li>
    ...
</ul>

Я прочитал, что могу использоватьdata-url, но в этом случае неясно, где я его определяю (в <a> или в <div>, который его оборачивает) и как я извлекаю это на странице диалога.

EDIT

Для записи механизм работает в стандартном браузере, но без стилевого оформления.

Ответы [ 2 ]

1 голос
/ 25 января 2012

Я создал скрипт внутри тегов <script> ниже, который прослушивает события показа страницы и обновляет заголовок и заполнитель для ввода.

<div data-role="page" class="ui-page-z">
    <div data-role="header" data-theme="z" class="ui-bar-z">
        <h1 id="title">
        </h1>
    </div>
    <div data-role="content">
        <input placeholder="Type here..." id="configtext">
        </input>

    ...

    <script type="text/javascript">
        $("div.ui-page-z").live("pageshow", function(event, ui) {
            var dataUrl = $(".ui-page-active").attr("data-url");
            $("#title").empty();
            $("#title").append(SMSPLUS.getValue("title", dataUrl));
            $("#configtext").attr("placeholder", SMSPLUS.getValue("placeholder", dataUrl));
                    });
    </script>
</div>

Скрипт не был обнаружен при помещении в заголовок(предположительно потому, что фреймворк не обращает внимания на заголовки диалогов)

0 голосов
/ 21 января 2012

Вы можете попробовать удалить

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
$(document).ready(function() {
    $("#title").append(SMSPLUS.queryString("title"));
});
</script>
<title>Dialog</title>
</head>
<body>
</body>

и вернуть только html и javascript тела в вашем вызове ajaxНаличие двух DOMS в одной может запутать браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...