Страница jQuery в /live/bind pageinit, pageshow

Я работаю над приложением с jQuery mobile, я пытаюсь поместить все страницы в пользовательскую панель в один большой файл и запустить его одним большим .js файлом. Я не знаю, могу ли я написать файл .js следующим образом:

для инициализации при загрузке пользовательской панели

$(document).on('pageinit', function(){

});

а затем, когда определенная страница будет вызываться по id, если я могу поместить это:

$("#userpanel").on('pageshow', function(){

});

внутри первой такой, как это для каждой страницы:

$(document).on('pageinit', function(){

    $("#userpanel").on('pageshow', function(){

    });

    $("#*********").on('pageshow', function(){

    });

    $("#*********").on('pageshow', function(){

    });

});

И так далее, это как это работает или я неправильно понимаю базовую концепцию jQuery/JS? Если да, то что хорошего?

Ответ 1

Прежде всего, не используйте page events как детей других событий страницы, поэтому не должно было работать так. В этом случае все те события pageshow будут запускаться нормально без их родительского pageinit.

Вот рабочий jsFiddle пример.

Чтобы узнать больше о событиях страницы jQuery Mobile, просмотрите этот СТАТЬЯ, чтобы быть более прозрачным, это мой личный блог. Или можно найти ЗДЕСЬ.

Таким образом, правильный способ объявления событий страницы будет выглядеть следующим образом:

$("#userpanel").on('pagebeforeshow', function(){

});

$("#userpanel").on('pageshow', function(){

});

$("#userpanel").on('pagebeforeshow', function(){

});

$("#userpanel").on('pageshow', function(){

});

$("#userpanel").on('pagebeforeshow', function(){

});

$("#userpanel").on('pageshow', function(){

});