JQuery Mobile загрузить вторую страницу из нового HTML - PullRequest
4 голосов
/ 16 марта 2012

Скажем, я хочу загрузить новый html-файл с несколькими страницами jQuery, например:

$.mobile.changePage("some_page.html");

Если этот html-файл состоит из двух страниц, как мне загрузить не первую, а вторую страницу?Я пытался

$.mobile.changePage("some_page.html#second_page_id");

Но это не работает.Спасибо

Ответы [ 4 ]

0 голосов
/ 20 декабря 2012

ทำ แบบ นี้ ครับ

<a href="../index.php#two" data-ajax="false" data-transition="fade" data-role="button" data-theme="e" name="out">ออก</a>

สำคัญ คือ ให้ ใส่ data-ajax = "false"
จะ ก็ จะ страница изменений ได้ จาก ต่าง หน้า

0 голосов
/ 16 марта 2012

Чувак, попробуй сделать элемент второй страницы data-url как <div data-url="page.html&subpageidentifier"> на целевой HTML-странице. и дайте мне знать, что это действительно сработало для вас.

0 голосов
/ 16 марта 2012

Вы можете вручную получить нужный элемент:

//delegate the event binding for some link(s)
$(document).delegate('a.my-link', 'click', function () {

    //show the loading spinner
    $.mobile.showPageLoadingMsg();

    //make the AJAX request for the link's href attribute
    $.ajax({
        url     : this.href,
        success : function (serverResponse) {

            //get the data-role="page" elements out of the server response
            var $elements = $(serverResponse).find('[data-role="page"]');

            //you can now access each `data-role="page` element in the `$elements` object
            $elements.filter('#page-id').appendTo('body');

            //now use changePage to navigate to the newly added page
            $.mobile.changePage($('#page-id'), { /*options*/ });

            //hide the loading spinner
            $.mobile.hidePageLoadingMsg();
        },
        error   : function (jqXHR, textStatus, errorThrown) { /*Don't forget to handler errors*/ }
    });

    //stop the default behavior of the link, also stop the event from bubbling
    return false;
});

Но я должен сказать, что в настоящее время работает jQuery Mobile, поэтому лучше поместить каждый элемент data-role="page" в отдельный документ..

0 голосов
/ 16 марта 2012

Функция $.mobile.changePage() берет первый div с data-role="page" и загружает его в DOM с помощью вызова AJAX. Лучшее решение - переместить вторую страницу в верхнюю часть HTML-кода.

В противном случае, если вы захотите загрузить первую или вторую страницу, вы можете поместить их в разные файлы.

Может быть, есть способ вызвать вторую страницу, но я понятия не имею, как этого добиться.

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