2012-06-28 3 views
2

Я новичок в JQuery подвижной станины work.On мое наблюдение я не могу стрелять pagebeforeshow событие на первой странице моего документаJQuery мобильный pageshow событие не стрельбы на первой странице

Может

кто сталкивался с такой же вопрос .Please предложить мне шаги, чтобы вызвать событие или любого другого альтернативного

+0

Я не уверен, Что происходит, когда я не могу видеть любой код, но я могу вылить вам рабочую демо-версию для 'pagebeforeload', если те прохладные Леммы знают, что я отправлю demo ниже, ':)' –

+0

- pagebeforeload работает для первой страницы документа? Если это так, напишите демо-версию – sudheer

+0

Да, дайте мне знать, если это что вы ищете, дай 2 минуты, ура! –

ответ

2

демоhttp://jsfiddle.net/yNzzG/

в демке вы увидите уведомление, когда pagebeforeshow обработчика будет получить срабатывают.

Остальной код станет ясно, надеюсь, что это помогает,

код

$(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); 
     }); 

    }); 
}); 
+1

спасибо Tats_innit – sudheer

+0

Я обновил ваш jsfiddle до jQuery 1.8.3, и он прекратил работу: http://jsfiddle.net/yNzzG/25/ – dsdsdsdsd

0

Это может произойти потому, что JQuery дом модель не готова в первый раз на огонь страницу шоу событие для первая страница, поэтому попробуйте включить (связать событие с страницей) в событии pageinit, это работает для меня ...

$(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 
    }); 
1

Другая альтернатива, которая работает S хорошо для меня и не требует других обработчиков событий, поэтому все мой pageshow связывает в одном месте, чтобы просто создать фиктивную первую страницу, которая будет немедленно изменить к первому видимое:

<div id="start" data-role="page" data-title="App Title"></div> 
<div id="realFirstPage" data-role="page"> 
    ... 
</div> 

Затем в конце из document.ready функции, просто сделать это:

setTimeout(function() { 
    $.mobile.changePage($("#realFirstPage"), { 
     transition: 'pop', 
     changeHash: false 
    }); 
}, 100); 
Смежные вопросы