如何使用$ .mobile.navigate将参数发送到不同闭包下的pagebeforeshow

时间:2014-12-24 06:55:26

标签: jquery jquery-mobile

您好,在我的应用程序中,我使用以下代码从一个div导航到另一个div,

$.mobile.navigate( "#formsEnterId", { info: "info about the #formsEnterIdhash" });

$("#formsEnterId").on('pagebeforeshow', function (event, data) {
            console.log("Entered page before show::",data);    //How to fetch the info here??
        });

在pagebeforeshow事件中,我想要获取信息属性。我不知道如何获取 info属性。但页面导航成功。

我也使用$ .mobile.changepage但没有运气。

请有人协助我在pagebeforeShow事件中获取info属性。 我已经在Pass parameter between pages using jquery mobile

中看到了相关的答案

但这并没有解决我的问题,因为我的页面导航脚本和pagebeforeshow事件处于不同的闭包之下。

1 个答案:

答案 0 :(得分:0)

当所有内容都加载到DOM中时,我们可以创建一个用于数据存储的全局对象。

直播示例:http://jsfiddle.net/Gajotres/9KKbx/

var storeObject = {
    parameter1: null,
    parameter2 : null
}
// Store object
$(document).on('pagebeforeshow', '#second', function(e, data){    
    alert("My name is " + data.prevPage.find('#test-input').val());
});

另一种方法是将变量存储在本地存储

$(document).on('pagebeforeshow', '#index', function(){      
    $(document).on('click', '#change-page-button', function(){    
        // store some data
        if(typeof(Storage)!=="undefined") {
              localStorage.firstname="Dragan";
              localStorage.lastname="Gaic";           
        }
        // Change page
        $.mobile.changePage("#second");
    });   
});

$(document).on('pagebeforeshow', '#second', function(){      
    alert('My name is ' + localStorage.firstname + ' ' + localStorage.lastname);
    // Lets change localStorage data before we go to the next page
    localStorage.firstname="NewFirstNeme";
    localStorage.lastname="NewLastName";   
});

$(document).on('pagebeforeshow', '#third', function(){      
    alert('My name is ' + localStorage.firstname + ' ' + localStorage.lastname);
});