我有一个名为“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。
问题是什么?
最佳答案
请注意 pageshow 在 jQuery Mobile 1.4 中已弃用: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' );
我个人不推荐后两者,因为您可以自由设置不同的 pagecontainer,事实上我在 Jasmine 测试中就是这样做的。
请注意,该页面必须首先真正处于事件状态(例如,它在 pagecreate 中尚未处于事件状态)。
关于javascript - jQuery Mobile - 获取加载的页面 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20760643/