【问题标题】:How exactly does $.mobile.activePage property work?$.mobile.activePage 属性究竟是如何工作的?
【发布时间】:2011-12-09 02:51:42
【问题描述】:

我正在尝试以下方法,

$(document).bind ('pageshow', function (e, data) {
   console.log ($('#page_spots'));
   console.log ($.mobile.activePage);

   if ($.mobile.activePage == $('#page_spots')) { console.log ('Bingo!'); }
});

作为#page_spots 属性data-role 设置为page 的div。在上面的例子中,当活动页面是#page_spots 我想记录'Bingo!'在控制台中。

我是 jQM 的新手,我不知道这是否应该是正确的方法。

提前感谢您并为我的英语道歉。

【问题讨论】:

    标签: jquery jquery-mobile


    【解决方案1】:

    您可以从$.mobile.activePage 获取活动页面的 ID 并将其与字符串进行比较,而不是尝试与 jQuery 对象进行比较:

    $(document).bind ('pageshow', function (e, data) {
       console.log ($('#page_spots'));
       console.log ($.mobile.activePage);
    
       if ($.mobile.activePage.attr('id') == 'page_spots') { console.log ('Bingo!'); }
    });
    

    这是一个演示:http://jsfiddle.net/E6YuA/

    $.mobile.activePage 很好,因为它始终是当前data-role="page" 元素的缓存对象,您可以快速引用它。

    更新

    我刚刚又读了一遍,您不需要使用.attr() 来查找 ID,您可以通过直接从 DOMElement 访问属性来更快一点:$.mobile.activePage[0].id

    【讨论】:

    • 谢谢贾斯珀!我还不能接受你的回答,但我会在 2 分钟内接受。
    猜你喜欢
    • 1970-01-01
    • 2011-06-26
    • 2021-08-15
    • 2012-06-08
    • 2011-10-11
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    相关资源
    最近更新 更多