【问题标题】:jQuery Mobile: Getting ID of previous pagejQuery Mobile:获取上一页的 ID
【发布时间】:2011-10-02 19:33:18
【问题描述】:

我基本上需要一个自定义函数,仅在例如从主页单击#reviews 页面时使用。

这是我正在使用的当前代码:

$(document).bind("mobileinit", function(){
    $('#reviews').live('pagebeforeshow',function(event){
    var cpage = $.mobile.activePage.attr('id');
        if (cpage == 'home') {
            addPages();
        }
    });
});

问题是,即使它使用 'pagebeforeshow',它也使用将要转换到的页面的 id 作为活动页面,在这种情况下是 'reviews' 而不是主页,从而导致 if 语句失败。

所以我的问题是,在这个例子中,我将如何获取上一页的 id,以确保它实际上来自 #home 页面?

【问题讨论】:

    标签: jquery jquery-mobile


    【解决方案1】:

    要完成答案:您将得到一个 jQuery 对象,因此要获取页面的 ID,请执行以下操作:

    $("#page-id").live('pagebeforeshow', function(event, data) {
        console.log("the previous page was: " + data.prevPage.attr('id'));
    });
    

    data.prevPage 正在获取上一页作为 jQuery 对象,

    .attr('id') 正在从该 jQuery 对象获取 id。

    【讨论】:

    【解决方案2】:

    pagebeforeshow 事件处理程序实际上有 2 个参数:事件和 ui。您可以从 ui 访问上一页。这是来自jquery-mobile event docs的示例:

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

    所有 4 个页面显示/隐藏事件的这些参数都是相同的。

    【讨论】:

    • 谢谢,这回答了我的问题
    猜你喜欢
    • 2018-03-11
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    相关资源
    最近更新 更多