Как установить базовый URL для ссылок jquery при переходе между HTML-страницами - PullRequest
2 голосов
/ 27 января 2012

У меня есть две страницы, index.html и testpage.html

testpage.html состоит из двух элементов страницы foo и панели со ссылками между ними.

Я перехожу к testpage.html из index.html с помощью вызова ajax. Проблема в том, что ссылки на testpage.html используют index.html в качестве базового URL. Поэтому, когда я пытаюсь перейти от #foo к #bar, я ловлю pagechangefail

 $( document ).bind( "pagechangefailed", function( event, data ){
            alert('failed change ' + data.toPage);

        });

Это предупреждение "Не удалось изменить http://domain.com/mobile/index.html#bar"

Очевидно, проблема в том, что #bar не существует в index.html, но существует в testpage.html. Я не понимаю, почему ссылка пытается вернуть ссылку на исходную страницу. Как я могу вручную установить ссылку или попытаться как-то переопределить вручную? Я пробовал что-то вроде

$.mobile.changePage('testpage.html#bar');

но не повезло.

1 Ответ

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

Я думаю, что jQM видит это как 'Deep Linking', но я вижу, что это не то, чего вы пытаетесь достичь

ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ : поскольку мы используем хеш для отслеживания истории навигации для всех «страниц» Ajax, в настоящее время невозможно создать глубокую ссылку на якорь (index.html#foo) на странице в jQuery Mobile, поскольку платформа будетищите «страницу» с идентификатором #foo вместо собственного поведения прокрутки к содержимому с этим идентификатором.

Я думаю (но не пробовал это), вам нужно использовать $.mobile.loadPage('testpage.html'), чтобы сначала загрузить страницу в DOM, затем использовать $.mobile.changePage('#bar') для перехода.

Подробнее об этом здесь:

Также я видел использование целевого атрибута , но не уверен, будет ли это работать с использованием $.mobile.changePage()

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