页面更改事件

时间:2014-07-16 19:33:12

标签: javascript jquery html jquery-mobile

我的小提琴

http://jsfiddle.net/sx9Rt/2/

我的问题

我有一个名为page1的页面。导航到page2之后,我想改变page1,以便下次访问它时,它会以某种方式显示(例如,背景颜色为蓝色)。我想在转换到page2结束后才进行此更改。

我试图在JQM 1.4中正确使用pagecontainerchange事件,但这对我不起作用。我不想使用pagechange事件,因为它已被弃用。

3 个答案:

答案 0 :(得分:1)

  

更新了 FIDDLE

pagecontainer小部件的pagecontainershow事件在完成新页面的动画后运行。如果您可以检查toPage或prevPage属性,以确定您的来源和去向。

$( ":mobile-pagecontainer" ).on( "pagecontainershow", function( event, ui ) {
    var prevPageID =  ui.prevPage.prop("id");
    if (prevPageID == "page1"){
          toDoAfterTransition();
    }
});

答案 1 :(得分:1)

小提琴更新:http://jsfiddle.net/sx9Rt/13/

使用此:

$( ":mobile-pagecontainer" ).on( "pagecontainerhide", function( event, ui ) {
    $("#page1").css('background', 'blue');
});

API doc:http://api.jquerymobile.com/pagecontainer/

答案 2 :(得分:0)

您可以使用Javascripts setInterval函数来检查页面的可见性。

var prevPage;

$(document).on('click', 'a[data-role="button"]', function(){
    prevPage = $(this).parents('[data-role="page"]');

    var checkVisibility = setInterval(function() {
        if(!$(prevPage).is(':visible')) {
            $(prevPage).css('background', 'blue');
            clearInterval(checkVisibility);
        }
    }, 10);
});

小提琴:http://jsfiddle.net/sx9Rt/11/