在jquery mobile中为另一个页面触发了哪个事件

时间:2011-12-22 06:55:56

标签: jquery jquery-mobile

我想知道从假设a.html到b.html的页面转换时会触发哪些事件。 我想绑定一个日期属性,并在从a.html加载页面b.html时通过ajax获取会话值。

我尝试过pageinit和pagecreate事件。当我刷新b.html时,只会触发这两个事件。

请帮助。

谢谢&问候, Vineet M

2 个答案:

答案 0 :(得分:2)

我认为您可能正在寻找pageshowpagehide个事件。检查in the documentation

$( 'div' ).live( 'pageshow',function(event, ui){
  alert( 'This page was just hidden: '+ ui.prevPage);
});

$( 'div' ).live( 'pagehide',function(event, ui){
  alert( 'This page was just shown: '+ ui.nextPage);
});

答案 1 :(得分:1)

我刚刚就该特定主题进行了一些研究。

从第A页转换到第B页时,会调用以下事件:

  • pagebeforechange
  • pagebeforeload
  • pagebeforecreate
  • pagecreate
  • pageinit
  • 页面加载
  • pagebeforechange(是的,再次)
  • pagebeforeshow
  • pageshow
  • pagechange

您可以使用以下代码自行检查:

$(document).delegate('#pageId','pagebeforeshow', function(event) {
    console.log('pagebeforeshow');
});

$(document).delegate('#pageId','pagebeforecreate', function(event) {
    console.log('pagebeforecreate');
});

$(document).delegate('#pageId','pagecreate', function(event) {
    console.log('pagecreate');
});

$(document).delegate('#pageId','pageinit', function(event) {
    console.log('pageinit');
});

$(document).delegate('#pageId','pageshow', function(event) {
    console.log('pageshow');
});

$(document).bind('pagebeforeload', function(event) {
    console.log('pagebeforeload');
});

$(document).bind('pageload', function(event) {
    console.log('pageload');
});

$(document).bind('pagebeforechange', function(event) {
    console.log('pagebeforechange');
});

$(document).bind('pagechange', function(event) {
    console.log('pagechange');
});