在pageinit上使用jQuery Mobile触发单击

时间:2013-08-13 13:09:19

标签: javascript jquery css jquery-mobile eventtrigger

我试图在<li>事件中使用jQuery Mobile触发我页面上特定pageinit的点击。

我可以成功触发点击,但是我在行上收到错误:

var currentPage = $.mobile.activePage;

  

错误:TypeError:currentPage未定义

我想要实现的是,如果在{URL中传递了reminder的参数,那么我想触发对<li>的点击。我不确定我是否使用了错误的jQM事件(pageinit),但由于某种原因,似乎没有“活动页面”。

$(document).on('pageinit', function (event, ui) {

    var page = $(event.target);

    page.find("li.static_nav").on('click', function () {
        var currentPage = $.mobile.activePage;
        var subheader = currentPage.find("#static_page_sub_header");
        var target = $(this).attr("data-target");

        $(this).siblings().removeClass('active');
        $(this).addClass('active').find('a').clone(true, true).appendTo(subheader.empty());

        currentPage.find(".static_panel").hide();

        return false;
    });


    if (page.find('#p_content').length !== 0) {
        var url = $.mobile.path.parseUrl(document.location.href);
        var query_string = url.search;
        if (/reminder/i.test(query_string)) {
            $('li.static_nav:eq(1)', $.mobile.activePage).trigger('click');
        }
    }

});

1 个答案:

答案 0 :(得分:1)

将以下代码移出pageinit事件并进入pageshow事件:

$(document).on('pageshow', function (event, ui) {

var page = $(event.target);

if (page.find('#p_content').length !== 0) {
    var url = $.mobile.path.parseUrl(document.location.href);
    var query_string = url.search;
    if (/reminder/i.test(query_string)) {
        $('li.static_nav:eq(1)', $.mobile.activePage).trigger('click');
    }
}

});