jQuery-Mobile pagecontainerbeforechange不会触发

时间:2014-10-10 08:43:48

标签: javascript jquery jquery-mobile

我正在处理单页应用程序。我需要来自jQuery-Mobile的pagecontainerbeforechange事件,因为我想检查我的网站包装器是否具有类“show-nav”。当站点包装器具有此类时,将打开站点菜单,并且内容向左移动350px。因此,如果用户现在点击注册,并且在他打开网站菜单之前,我的注册页面就会移开,因为注册页面上没有网站菜单,所以无法将其恢复。

首先我尝试使用pagecontainerload事件,直到我看到它被弃用。然后我将其更改为pagecontainerloadbeforechange事件,但我无法使其正常工作。

我想要检查班级“.show-nav”的页面有id #registration

因此,用户在主站点上,他点击“注册”,在页面更改之前,应删除“.show-nav”类。已经设置了删除类的功能,但我不知道如何以正确的方式调用它。

    function toggleNav() {
        if ($('.site-wrapper').hasClass('show-nav')) {
            // Do things on Nav Close
            $('.site-wrapper').removeClass('show-nav');
        }

更详细的说明 - >

虽然我写了这个详细的说明我得到了解决方案,它非常简单,让我感到尴尬:从网站#registration中移除了网站包装器......这就是全部。

感谢您的帮助,感谢您编辑奥马尔!

2 个答案:

答案 0 :(得分:1)

您可以将toggleClass添加到.site-wrapper。如果它有类.show-nav它将删除它,否则它将添加类:)

$('.site-wrapper').toggleClass('show-nav');

答案 1 :(得分:0)

pagecontainerbeforechange Pagecontainer Widget 的一部分。

此时(jqm 1.4.x)这个小部件被设计为一个绑定到body元素的singlton。因此,如果您想检测页面更改,您应该使用上面的代码:

$( "body" ).on( "pagecontainerbeforechange", function( event, ui ) {
    console.log(event);
    console.log(ui);
} );