Как использовать шаблон для всех страниц jQuery Mobile? - PullRequest
1 голос
/ 09 февраля 2012

Вот: шаблон нижнего колонтитула:

<!-- Templates -->
<script type="text/template" id="templateFooter">
    <div data-role="navbar">
        <ul>
            <li><a href="#about">About</a></li>
            <li><a href="#contact">Contact</a></li>
        </ul>
    </div>
</script>

На каждой мобильной странице у меня есть:

<div data-role="footer" data-position="fixed">footer</div>

То, как я сейчас загружаю шаблон:

$(function() {
    $('div[data-role=footer]').html($('#templateFooter').html());
    $.mobile.activePage.trigger('create');
});

Это работает, но мне не очень нравится использовать $ (function (), но мне нужно загрузить его, если любая страница показывает, так что pageinit или pageshow не помогут. Я будуиспользуя knockout.js, если это поможет.

Есть ли лучший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 10 февраля 2012
function getTemplateFooter() {
    //return footer text here
}


$("div:jqmData(role='page')").live("pagebeforecreate",function() {
    // get the footer of the page        
    // if footer doesn't exist on page, insert it where you want it... in this case after role="content"?
    var $content =$(this).page().find('div:jqmData(role="content")');
    $content.after(getTemplateFooter());
}
0 голосов
/ 09 февраля 2012

есть также событие pagehow, которое запускается, даже если пользователь переходит на страницу, нажимает кнопку "Назад" и т. Д. ... всплывает до страницы div

Я использую его для страниц, гдемного динамических данных может меняться между последующими посещениями, или даже когда пользователь просто нажимает

...