我们正在使用jquery mobile和apache cordova开发一款移动应用程序。在迁移到jquery mobile 1.4.0后,我们切换到外部面板,但是面板存在问题。
在http://jsfiddle.net/Q58MZ/3/这个链接中有一个简单的问题示例。为了重现该问题,您必须进行以下步骤: 1.从菜单链接中点击页面1 2.从菜单链接中点击页面2 3.从菜单链接中点击页面1 4.从菜单链接中点击页面2 5.点击内容中的“转到页面1”链接
然后,菜单将不会打开,它将添加打开的类,但它不会打开。
以下是可重现该问题的示例代码:
在http://jsfiddle.net/Q58MZ/3/这个链接中有一个简单的问题示例。为了重现该问题,您必须进行以下步骤: 1.从菜单链接中点击页面1 2.从菜单链接中点击页面2 3.从菜单链接中点击页面1 4.从菜单链接中点击页面2 5.点击内容中的“转到页面1”链接
然后,菜单将不会打开,它将添加打开的类,但它不会打开。
以下是可重现该问题的示例代码:
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<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/mobile/1.4.0/jquery.mobile-1.4.0.min.js"></script>
<script>
$(document).ready(function() {
$.mobile.defaultPageTransition = 'none';
$("#mypanel").panel();
});
$(document).bind('panelbeforeopen', function(e, data) {
console.log("before open");
});
$(document).bind('panelbeforeclose', function(e, data) {
console.log("before close");
});
</script>
</head>
<body>
<div data-role="panel" id="mypanel">
<a href="#page1">page1</a>
<br />
<a href="#page2">page2</a>
</div>
<div data-role="page" id="page0">
<div data-tap-toggle="false" data-role="header" >
<a href="#mypanel">menu</a>
<h1>PAGE 0</h1>
</div>
<div data-role="content">
PAGE 0
</div>
<div data-tap-toggle="false" data-role="footer" >
</div>
</div>
<div data-role="page" id="page1">
<div data-tap-toggle="false" data-role="header" >
<a href="#mypanel">menu</a>
<h1>PAGE 1</h1>
</div>
<div data-role="content">
PAGE 1
</div>
<div data-tap-toggle="false" data-role="footer" >
</div>
</div>
<div data-role="page" id="page2">
<div data-tap-toggle="false" data-role="header" >
<a href="#mypanel">menu</a>
<h1>PAGE 2</h1>
</div>
<div data-role="content">
PAGE 2
<a href="#page1">GO TO PAGE 1</a>
</div>
<div data-tap-toggle="false" data-role="footer" >
</div>
</div>
</body>
奇怪的是,当我通过面板链接导航时,面板可以正常工作,但是当我单击不在面板中的链接时,它就不再打开了。我们也尝试过使用$.mobile.changePage和新的:pagecontainer,但结果相同。如果有人遇到类似问题,请告诉我他是如何解决的。 谢谢。
$.mobile.defaultPageTransition = 'none';
这行代码导致了这个问题,尽管它不应该。页面在面板关闭之前就已经改变了,太奇怪了。 - Omar