获取在 jquery mobile 中创建的页面
Posted
技术标签:
【中文标题】获取在 jquery mobile 中创建的页面【英文标题】:Get the page being created in jquery mobile 【发布时间】:2019-03-02 00:42:03 【问题描述】:我使用的是 jQuery mobile 1.4.5
我将以下事件添加到文档中:
$(document).on("pagecreate", function (e)
);
当要查看新页面时触发事件,我的问题是如何获取正在创建的页面的 id?
$.mobile.activePage
未定义,页面容器小部件的 getActivePage()
抛出错误:
无法在初始化之前调用 pagecontainer 上的方法;试图调用方法“getActivePage”
感谢任何帮助。
编辑:
我用过:
$.mobile.pageContainer.pagecontainer("getActivePage")[0].id
它不会抛出错误,但它返回当前页面的 id 而不是要创建的页面,有什么建议吗?
【问题讨论】:
如何获取页面的id??id
属于页面中的任何元素,而不是页面本身。
如果你的意思是body
的id
,那么body
标签不需要任何id
,因为在任何有效的body
标签中只存在一个body
标签页面。
jquery mobile有一个dive with page角色,动态添加到DOM中,事件对应这个事件
页面的id
是怎么设置的??
查看 jquery 移动文档
【参考方案1】:
查看event.target
,这是一个演示:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
<script>
$(document).on('mobileinit', function ()
function showme(e, ui)
var activePage = $(":mobile-pagecontainer").pagecontainer("getActivePage").prop("id");
$("#events").append("Event: "+e.type+" raised from: "+(activePage ? activePage : 'landing')+"<br>");
if(activePage)
$("#events").append("Active Page: "+activePage+"<br>");
if(e.target)
if(e.target.id)
$("#events").append("Target Page: "+e.target.id+"<br>")
$(document).on("pagecreate", function(e, ui) showme(e, ui); );
);
</script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
<div data-role="page" id="page-1">
<div data-role="header"><h1>Page 1</h1>
<a href="#page-2" class="ui-btn ui-corner-all ui-btn-inline ui-mini">Go to Page 2</a>
</div>
<div role="main" class="ui-content">
<div id="events">
</div>
<hr>
Click "Go to page 2"
</div>
</div>
<div data-role="page" id="page-2">
<div data-role="header"><h1>Page 2</h1>
<a href="#page-1" class="ui-btn ui-corner-all ui-btn-inline ui-mini">Back to Page 1</a>
</div>
<div role="main" class="ui-content">
Page 2 has been created - Click back
</div>
</div>
</body>
</html>
【讨论】:
以上是关于获取在 jquery mobile 中创建的页面的主要内容,如果未能解决你的问题,请参考以下文章
jQuery Mobile 面板在页面完全加载之前在初始加载时显示,速度较慢的设备
在 HTML 页面或模板中使用 Django-REST-Framework 从在 Django 中创建的 API 获取/显示 API 数据