我正在处理单页应用程序。我需要来自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中移除了网站包装器......这就是全部。
感谢您的帮助,感谢您编辑奥马尔!
答案 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);
} );