jquery mobile не загружает файл при нажатии кнопки - PullRequest
1 голос
/ 02 марта 2012

У моего мобильного макета jquery есть панель навигации, которая содержит обе кнопки. При нажатии на кнопку должен быть загружен другой файл (html5 + jquery-mobile), и это не потому, что он не вызывает связанные javascripts! Тем не менее, если я загружаю этот файл индивидуально, работает как шарм. Вызов по внешней ссылке не является решением, поскольку переходы будут пропущены. Как это решить? Спасибо.

вызов файла (jquery)

$("#head").append("<a href='"+linkIz+".html' data-role='button'  data-transition='flip'  data-icon="+iconoIz+" >"+textoIz+"</a>");

Ответы [ 2 ]

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

Возможно, вам просто нужно обновить функциональность jQM на вашей странице, чтобы он знал, как связать тег a (ссылка) с помощью ajax. Вы уже пробовали что-то подобное?

$("#head").trigger('refresh');

Это будет после добавления новой ссылки.

Надеюсь, это поможет.

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

Вот довольно простое решение. Поместите все JS вашего сайта во внешний файл, затем включите этот файл в каждый HTML-документ. Таким образом, все JS для всего сайта будут доступны независимо от того, какую страницу пользователь разместил на вашем сайте или если пользователь обновит страницу.

Ваш файл может включать это, чтобы размещать панели навигации на каждой странице при инициализации:

$(document).delegate('[data-role="page"]', 'pageinit', function () {
    $(this).children('[data-role="header"]').append("<a href='" + linkIz + ".html' data-role='button'  data-transition='flip'  data-icon=" + iconoIz + " >" + textoIz + "</a>");
});

Обязательно используйте делегирование событий, поскольку вы не будете точно знать, когда какая-либо конкретная страница находится в DOM.

Также я предполагаю, что #head является элементом data-role="header" для страницы, если это так, то вам следует изменить его на .head (класс вместо ID), потому что вы можете иметь несколько страниц в DOM сразу, поэтому все идентификаторы для всего сайта должны быть уникальными. Обычно я присваиваю каждому элементу data-role="page" идентификатор, затем я использую классы для уточнения страниц, это гарантирует, что я не создаю несколько элементов с одинаковым идентификатором, которые могут быть в DOM одновременно.

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