在jquery mobile中,您可以拥有一个导航栏,该导航栏具有一个持久性类别,使导航按钮被选择以不同颜色突出显示。这向用户指示他/她在菜单中的位置。是否可以在列表视图上具有相同的效果?我想要做的是当用户选择列表中的锚点时它会保持突出显示。因此,如果用户返回到同一列表,则用户可以看到列表中的哪个选项先前已被选中。
答案 0 :(得分:1)
以下是一个工作示例:http://jsfiddle.net/Gajotres/WA7qZ/
我认为这就是你想要的。不幸的是,没有任何jQuery Mobile内置功能,因此必须手动完成。
<强> HTML:强>
<!DOCTYPE html>
<html>
<head>
<title></title>`enter code here`
<link href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" rel="stylesheet" type="text/css" />
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js" type="text/javascript"></script>
</head>
<body>
<div data-role="page" id="profile">
<div data-role="header" data-position="fixed">
<h3>Example</h3>
</div>
<!-- /header -->
<div data-role="content">
<ul id="mylist" data-role="listview" data-inset="true">
<li data-theme='a'><a id='a1' href='#' rel='external'>TEST 1</a></li>
<li data-theme='a'><a id='a2' href='#' rel='external'>TEST 2</a></li>
</ul>
</div>
<div id='divtest'>
</div>
<!--/content-->
<div data-role="footer" data-position="fixed">
</div>
<!--/footer-->
</div>
<div data-role="page" id="second">
<div data-theme="a" data-role="header">
<a href="#profile" class="ui-btn-left">Back</a>
<h3>
Second Page
</h3>
</div>
<div data-role="content" class="content">
</div>
<div data-theme="a" data-role="footer" data-position="fixed">
</div>
</div>
</body>
</html>
<强>使用Javascript:强>
$(document).live('pagebeforeshow','#profile', function(e,data){
$(document).off('click', '#mylist li').on('click', '#mylist li',function(e) {
setNewTheme('a', '#mylist li');
setNewTheme('b', $(this));
$.mobile.changePage("#second", {
reloadPage: false,
transition: "slide",
reverse: false
});
});
});
function setNewTheme(newTheme, object) {
$.mobile.activePage.find(object).removeClass('ui-btn-up-a ui-btn-up-b ui-btn-up-c ui-btn-up-d ui-btn-up-e ui-btn-hover-a ui-btn-hover-b ui-btn-hover-c ui-btn-hover-d ui-btn-hover-e').addClass('ui-btn-up-' + newTheme ).attr('data-theme', newTheme );
}