- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目标是根据用户是否登录显示不同的首页。登录检查使用同步 Ajax 调用进行,其结果决定是否显示登录对话框或第一个用户页面。
执行此操作的正常方法是设置 $.mobile.autoInitialize = false
,然后以编程方式初始化,如 this question 的答案中所述。 。由于某种原因,这不起作用,而是每次都会加载另一个页面。
我决定放弃这种方式,尝试另一种方式。我现在使用一个占位符,即空启动页面,只要登录检查进行,该页面就应该显示。登录检查后它应该会自动更改。这是通过调用一个函数来完成的,该函数执行对引入此启动页面的 pagechange
事件进行身份验证所需的 ajax 调用。该函数还负责更改结果页面。
诀窍是它并没有完全做到这一点。相反,它会在短时间内显示正确的页面,然后变回占位符。在 pagechange
中调用 preventDefault
并不能阻止这种情况,如 tutorial on dynamic pages 中所述。 。添加计时器修复了这个问题,让我认为当 pageshow
被触发时占位符还没有完全完成(根据页面事件的 this page ),或者初始页面加载的一些副作用仍然徘徊。
我真的不知道如何解决这个看似微不足道但却很繁重的问题。是什么导致这个额外的更改回到初始页面?另外,如果我拦截初始页面加载的方法是错误的,那么正确的方法是什么?
我使用 jQuery Mobile 1.4.0 和 jQuery 1.10.2(之前的 1.8.3)。
编辑:下面是我在此处发布问题之前最后一次尝试的代码。它不起作用:preventDefault
不会阻止转换到占位符页面。
$(document).on("pagebeforechange", function(e, data) {
if (typeof(data.options.fromPage) === "undefined" && data.toPage[0].id === "startup") {
e.preventDefault();
initLogin();
}
});
function initLogin() {
// ... Login logic
if (!loggedIn) // Pseudo
$('body').pagecontainer("change", "#login", {});
}
最佳答案
如果您使用多页面模型,您可以阻止在 pagebeforechange
事件中显示任何页面。此事件针对每个页面触发两次,一次针对即将隐藏的页面,一次针对即将显示的页面;但是,此阶段不会开始任何更改。
它从两个页面收集数据并将它们传递给更改页面功能。收集的数据表示为第二个参数对象,一旦触发事件就可以检索。
此对象需要的是两个属性:.toPage
和.options.fromPage
。根据这些属性值,您可以决定是显示第一页还是立即移至另一页。
var logged = false; /* for demo */
$(document).on("pagebeforechange", function (e, data) {
if (!logged && data.toPage[0].id == "homePage" && typeof data.options.fromPage == "undefined") {
/* immediately show login dialig */
$.mobile.pageContainer.pagecontainer("change", "#loginDialog", {
transition: "flip"
});
e.preventDefault(); /* this will stop showing first page */
}
});
data.toPage[0].id
值是 DOM 中的第一页 id。
data.options.fromPage
应该是未定义
,因为它不应该从同一网络应用程序中的另一个页面重定向。
关于javascript - 以编程方式更改 jQuery Mobile 显示的首页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21504149/
给定默认路由,以下任一 URL 将导航到 Home Controller 的 Index 方法: 1. http://localhost 2. http://localhost/Home/Inde
可以在“设置”>“阅读”下找到 WordPress 阅读设置。 我将 WordPress 的“首页显示”选项设置为“静态首页”。 我的“首页”设置为“关于”。 我正在尝试为注销和登录用户设置不同的首页
我正在尝试禁用 Wordpress 首页上的插件,以使其更轻一些。我只想在显示首页时禁用它。 我在 wp-content/mu-plugins/中放置了这个工作代码它会禁用除指定/子页面/之外的所有页
有没有一种方法可以使首页包含 2 个 View ,而不使用 Drupal 6.x 中的面板模块? 谢谢 最佳答案 如果您不想使用面板,您可以将 2 个 View 创建为 block (就像侧边栏等一样
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我尝试管理基于 Plone 的网站 www.capital-tennis.org 上的内容。我对 Plone 本身几乎一无所知。 我想向网站的首页(主页面)添加 2 个 portlet,一个在左侧(在
如图所示,底部有 3 个 Controller ,分别是(HomeTableViewController、NavigationViewController 和 NewsViewController)
我开始在Windows上使用pentaho BI Server 5.2,并尝试通过本教程使用mysql配置进行安装: https://anonymousbi.wordpress.com/2013/12
我的首页(也就是发布帖子的页面)上的链接是红色的,悬停时它们会变成白色。但是在我的 STATIC 页面上,我希望链接在悬停时为白色和红色,我该怎么做? Tumblr 允许将 html 添加到您的静态页
我想创建一个网站 ala failblog.org,用户可以在其中提交内容并对内容进行投票 我想做的是 一种。向节点/文章添加一个字段,称为“front_page_at (date_time)” 湾。
注意:不能使用 Javascript 或 iframe。事实上,我不能相信客户端浏览器可以做任何事情,除了最基本的事情。 我正在将遗留的 PHP4 应用程序重建为 MVC 应用程序,目前我的大部分研究
我在这里不知所措。我觉得我已经尝试了所有的方法,并使用了其他帖子/教程中解释的确切方法。我知道您需要使用光标并设置第一个和最后一个可见文档,以便在向前移动的情况下从最后一个文档开始,在向后移动的情况下
我是一名优秀的程序员,十分优秀!