Можно ли вставить div страницы в мобильную страницу jQuery с помощью append ()? - PullRequest
0 голосов
/ 01 июля 2011

Чтобы загрузить мобильную страницу jQuery с помощью тега привязки, достаточно указать идентификатор div страницы в виде href

<a href="#page2">My link</a>
<div data-role="page" id="page2">
    <div data-role="header"></div>
    <div data-role="page"></div>
    <div data-role="footer"></div>
</div>

Но это предполагает, что div страницы уже был загружен в DOM.Что делать, если вы хотите сгенерировать страницы и поместить их в DOM следующим образом:

$("body").append(newPageDivHTMLString);

Я пытаюсь это сделать, но продолжаю получать сообщение «Невозможно вызвать метод _trigger of undefined».

Проходя по исходному коду jQuery для мобильных устройств (бета-версия 1), я обнаружил в строке 2600 следующий код:

page = settings.pageContainer.children( ":jqmData(url='" + dataUrl + "')" );

, где pageContainer - это элемент тела HTML, а dataUrl - идентификатор элемента моей страницы.Это вычисляется до неопределенного и, кажется, источник моей проблемы.Возможно ли в настоящее время вставить страницу div в мобильную страницу jQuery, как я?

Спасибо за чтение длинного вопроса.:)

1 Ответ

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

Я только что проверил на своей локальной машине, и это работает для меня:

<html>
<head>

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.css" />

<script src="http://code.jquery.com/jquery-1.6.1.min.js"></script>

<script src="http://code.jquery.com/mobile/1.0b1/jquery.mobile-1.0b1.min.js"></script>

<script>

function create_page(page_name) {
    $('body').append('<div data-role="page" id="' + page_name + '"><div data-role="content">Some content in here.</div></div>');
    //EDITED OUT, SEE BELOW $.mobile.changePage($('#' + page_name));
}

</script>
</head>
<body>



<div data-role="page">
<div data-role="content">
<a href="javascript:create_page('test_page_name');" data-role="button" style="padding:15px; font-size:30px;">TEST TEXT</a>
</div>
</div>

</body>
</html>

---- РЕДАКТИРОВАТЬ ---- также имеют эту функцию:

function change_page(page_name) {
   $.mobile.changePage($('#' + page_name));
}

и использоватьизменить его на динамически создаваемые страницы, например, так:

<a href="javascript:change_page('test_page_name');" data-role="button" style="padding:15px; font-size:30px;">Change Page</a>

Было несколько странное поведение при попытке ссылки на динамически созданную страницу с использованием хеша (href = "# test_page_name").В Firebug я увидел, что функция создания страницы правильно добавила новую страницу в тело, но кнопка изменения страницы создала бы другую страницу с тем же идентификатором, что и у исходной страницы, но с URL-адресом данных, который был установлен правильно.Элемент data-role = page, созданный путем нажатия на ссылку на страницу изменения, также имел то же содержимое, что и первый div, а страница, созданная функцией create_page, была просто проигнорирована.

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