Получить JS для загрузки на странице JQM

Я пытаюсь заставить плагин работать на JQM, но мне нужно, чтобы он ждал и загружался, когда активна вторая страница. Прямо сейчас, его загрузка при запуске. Мои страницы настроены с data-role='page', Вот мой код:

$(document).ready(function(){
    $("#two").bind('pageinit')
    jQuery(".namesleft").fitText();
    jQuery(".scoreleft").fitText();
    jQuery(".namesright").fitText();
    jQuery(".scoreright").fitText();
});

Заранее спасибо за помощь

3 ответа

Решение

Вот рабочий пример jsFiddle: http://jsfiddle.net/Gajotres/F2Gcm/

$(document).on('pageshow', '#index', function(){       
    $("h1").fitText(0.273);
    $(".download").fitText(1);
});

Методon следует использовать вместо метода live для привязки события страницы, метод live устарел и не существует в jQuery 1.9+.

Также это должно быть связано с событием PageShow, потому что оно не будет работать в любом другом случае. jQuery Mobile строг в том, что плагины делают визуальные изменения, такого рода плагины будут работать только в событии pagehow.

Если вы хотите лучше понять события на странице jQuery Mobile, ознакомьтесь с этой статьей или найдите ее ЗДЕСЬ.

JQuery Mobile имеет альтернативу $(document).ready, Код должен выглядеть примерно так:

    <script type="text/javascript">
       $('div:jqmData(role="page")').live('pagebeforeshow',function(){
             // code to execute on each page change
       });
</script>

Фактически, у jQm есть полный набор альтернатив событий обычным событиям jQuery: http://jquerymobile.com/demos/1.2.1/docs/api/events.html

Вы можете добавить свой код в событие pagehow JQM, например:

$("#two").live('pageshow', function(){
    $(".namesleft, .scoreleft, .namesright, .scoreright").fitText();
});
Другие вопросы по тегам