在jQuery Mobile 1.4.2中获取加载的页面
Get the loaded page in jQuery Mobile 1.4.2
我习惯了旧的jQuery Mobile界面,我可以这样写:
$("#page").on("pageLoad", function(){
//Do something
});
使用较新的pageContainer小部件和它的事件,我不知道要做什么检测页面被加载
例如,我需要知道如何检测#settings
页面是否刚刚加载。到目前为止我能算出
$("body").on( "pagecontainerload", function( event, ui ){});
但是我没有办法知道加载了什么页面。我尝试使用返回的事件和ui值,但没有成功。
似乎我的部分问题来自于不正确使用
$("body").pagecontainer("load", "welcome.html");
我在js文件的开头使用它来将它们全部加载到DOM中。但是,当我导航到该页面时,它又从DOM中删除了。例如,我用上面的代码加载welcome.html、settings.html和devices.html。然后是像
这样的链接<a href="#settings" class="navigation" data-icon="gear" data-transition="slide">Settings</a>
当我使用该链接进入设置页面,然后使用另一个相同类型的链接进入设备页面时,设置链接不再工作。在检查DOM时,#settings已被删除。事实上,"欢迎"也是如此。只要我从那个page
导航,它就会从DOM中删除。因此,要么是我做错了什么,要么是我对页面容器小部件的理解有缺陷。
更新
基于您更新的OP, 外部页面将在您离开它们时被删除,这是jQM的默认行为。如果您想保留这些页面,您需要将data-dom-cache="true"
添加到每个外部页面的页div。
您可以检索从pagecontainerload
上发出的ui
对象加载的页面。
$(document).on("pagecontainerload", function (e, ui) {
var loadedPage = $(ui.page),
pageID = loadedPage[0].id;
if (pageID == "settings") {
/* code */
}
});
请注意,pagecontainerbeforeload
、pagecontainerload
和pagecontainerfail
只在外部加载的页面上发出。此外,它们将在每次加载外部页面时触发,除非DOM缓存被启用。阅读更多关于这些事件的信息。
相关文章:
- 获取ajax加载的图像的大小
- ROR:如何在不重新加载浏览器的情况下从控制器获取参数
- 如何使用Pixijs获取在加载的精灵表资产中定义的图像
- 获取通过AJAX加载的元素
- 用javascript从窗口获取文档,同时检查文档是否已加载
- 加载XML并获取标记.从php更改为javascript
- jQuery:获取图像加载错误的详细信息
- Jquery选择选项并获取只工作一次的更改值(页面加载时)
- 无法获取表单's面板的x和y坐标,并在加载时从cookie中设置它们
- 为什么我在使用 javascript 提交表单时没有通过不加载页面获取帖子数据
- 可靠地将字体加载到 DOM 中以获取画布元素
- 如何使用onLoad加载jQuery JSON.从Zipcode On Form获取城市和州
- 页面加载时通过JQUERY获取SelectList值
- 滚动到底部后获取动态加载的HTML
- 加载后无法获取html内容
- 如何使用cURL获取JavaScript加载的网络内容
- 将从服务器获取的数据加载到输入文本表单中
- Firefox加载项:从选项卡获取文档
- 获取 window.location.reload 以在 Ionic 中仅加载一次
- 如何使用html5中的javascript在页面加载时从查询字符串中获取值