jquery mobile pageshow event ne se déclenche pas sur la première page

Je suis nouvelle dans le travail sur cadre mobile jQuery. Lors de mon observation, je ne parviens pas à déclencher l’événement pagebeforeshow sur la première page de mon document

Quelqu’un pourrait-il être confronté au même problème.Veuillez me suggérer les étapes à suivre pour déclencher l’événement ou toute autre solution.

démo http://jsfiddle.net/yNzzG/

Dans la démo, vous verrez une alerte lorsque le gestionnaire pagebeforeshow sera déclenché.

Le code de repos indiquera clairement, espérons que cela aidera,

code

 $(document).bind('mobileinit', function() { alert('mobileinit'); }); $(function() { var selector = ':jqmData(role=page)'; $('body').on('pageinit', selector, function(e, data) { // initialize page var $page = $(this); alert('init ' + $page.attr('id')); }).on('pagebeforeshow', selector, function(e, data) { // showpage var $page = $(this); alert('show Page before Show Stuff == > ' + $page.attr('id')); }); $('#page1').on('pageinit', function(e, data) { // setup handler var $page = $(this); $page.find('.colorchanger').click(function() { var $content = $page.find('.ui-content'), isBodyC = $content.hasClass('ui-body-c'); $content.toggleClass('ui-body-c', !isBodyC).toggleClass('ui-body-e', isBodyC); }); }); }); 

Une autre alternative qui fonctionne bien pour moi et qui ne nécessite pas d’autres gestionnaires d’événements, c’est pourquoi je crée simplement une première page factice qui passera immédiatement à la première page visible:

 
...

Ensuite, à la fin de la fonction document.ready, procédez comme suit:

 setTimeout(function() { $.mobile.changePage($("#realFirstPage"), { transition: 'pop', changeHash: false }); }, 100); 

Cela peut arriver parce que jquery dom model n’est pas prêt pour la première fois de déclencher un événement d’affichage de page pour la première page. Essayez donc d’inclure (événement bind pagehow) dans l’événement pageinit, cela fonctionne pour moi …

 $(document).on("pageinit", "#pageId", function(e){ console.log( ' Inside the pageinit event' ); $(document).on("pageshow", "#pageId", function(e){ // code for page show event }); // code for pageinit event });