Jquery Mobile中的持久列表视图

时间:2013-04-05 19:05:39

标签: jquery jquery-mobile markup persistent jquery-mobile-listview

在jquery mobile中,您可以拥有一个导航栏,该导航栏具有一个持久性类别,使导航按钮被选择以不同颜色突出显示。这向用户指示他/她在菜单中的位置。是否可以在列表视图上具有相同的效果?我想要做的是当用户选择列表中的锚点时它会保持突出显示。因此,如果用户返回到同一列表,则用户可以看到列表中的哪个选项先前已被选中。

1 个答案:

答案 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 );
}