我有一个名为“info.html”的文档。
它有5页:
我想在页面加载后,jquery向服务器发送请求以获取有关此项目的信息。
我都需要知道如何触发这个功能?
尝试:
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>CoCouppn!</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.0/jquery.mobile-1.4.0.min.js"></script>
<script type="text/javascript">
$(document).on("pageshow", function() {
alert($(this).attr('id'));
});
</script>
</head>
<body>
<div data-role="page" class="pge" id="food">
food
</div>
<div data-role="page" class="pge" id="toys">
toys
</div>
<div data-role="page" class="pge" id="entertainment">
entertainment
</div>
<div data-role="page" class="pge" id="smartphones">
smartphones
</div>
<div data-role="page" clsas="pge" id="electronics">
electronics
</div>
</body>
</html>
它会警告“未经分类”而不是页面ID。
有什么问题?
答案 0 :(得分:8)
请注意,jQuery Mobile 1.4中不推荐使用pageshow:http://api.jquerymobile.com/pageshow/
另请注意,$ .mobile.activePage已弃用。
如果您想获取有效的网页ID,可以执行以下操作:
$.mobile.pageContainer.pagecontainer( 'getActivePage' ).attr( 'id' );
或
$('body').pagecontainer( 'getActivePage' ).attr( 'id' );
或
$(':mobile-pagecontainer').pagecontainer( 'getActivePage' ).attr( 'id' );
我个人不推荐后两种,因为你可以自由设置一个不同的页面容器,实际上我在Jasmine测试中这样做。
请注意,页面必须首先处于活动状态(例如,它在pagecreate中尚未激活)。
答案 1 :(得分:3)
答案 2 :(得分:1)
您可以更简洁,更清晰地获取当前页面信息:
$(".ui-page-active").attr("id")
这只是此处所示代码的变体:http://demos.jquerymobile.com/1.4.5/toolbar-fixed-persistent/#&ui-state=dialog
答案 3 :(得分:-1)
尝试$(document).ready( function )
,$(document).ready允许您仅在加载页面时在jQuery中执行代码。
答案 4 :(得分:-1)
如果您想使用pagecreate
事件,请使用this.id
$(document).on(
"pagecreate",
'#page_1, #page_2',
function(event) {
var pageId = this.id;
...
}
);