JQuery 面板内的移动列表视图
JQuery Mobile listview inside a panel
我正在尝试将列表视图与面板中的可折叠项目一起使用,但我得到了奇怪的结果。具体来说,这是我正在使用的最小代码。请注意,列表视图中的所有内容均取自 JQuery 移动示例,因此我希望它可以开箱即用。
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="jquery.mobile-1.4.5.min.css" />
<script src="jquery-1.11.3.min.js"></script>
<script src="jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
<h1></h1>
<div data-role="page" id="mainpage">
<div data-role="panel" id="leftpanel" data-position="left" data-display="push">
<!-- panel content goes here -->
<div data-role="tabs" id="tabs">
<div data-role="navbar">
<ul>
<li><a href="#one-tab" data-ajax="false">one</a></li>
<li><a href="#two-tab" data-ajax="false">two</a></li>
</ul>
</div>
<div id="one-tab" class="ui-body-d ui-content">
Empty one!
</div>
<div id="two-tab" class="ui-body-d ui-content">
<ul data-role="listview" data-inset="true" data-shadow="false">
<li data-role="collapsible" data-iconpos="right" data-inset="false">
<h2>Birds</h2>
<ul data-role="listview" data-theme="b">
<li><a href=“#">Condor</a></li>
<li><a href="#">Eagle</a></li>
<li><a href="#">Sparrow</a></li>
</ul>
</li>
<li><a href="#">Humans</a></li>
<li data-role="collapsible" data-iconpos="right" data-inset="false">
<h2>Fish</h2>
<ul data-role="listview" data-theme="b">
<li><a href="#">Salmon</a></li>
<li><a href="#">Pollock</a></li>
<li><a href="#">Trout</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div id="mainheader" data-role="header" data-position="fixed">
<a href="#leftpanel" data-role="button" data-iconpos="notext" data-icon="bars"></a>
<h1>Main page</h1>
</div>
Main page
</div>
</body>
</html>
我得到的是这样的
这可以说是不完全正确的。我做错了什么?
您正在以 jQM 无法处理的方式混合列表视图和可折叠项。然而,你可以用一些 CSS.
使这个看起来 'right'
<ul id="tabTwoList" data-role="listview" data-inset="true" data-shadow="false">
<li>
<div data-role="collapsible" data-inset="false" data-iconpos="right">
<h2>Birds</h2>
<ul data-role="listview" data-theme="b">
<li><a href="#">Condor</a></li>
<li><a href="#">Eagle</a></li>
<li><a href="#">Sparrow</a></li>
</ul>
</div>
</li>
<li><a href="#">Humans</a></li>
<li>
<div data-role="collapsible" data-inset="false" data-iconpos="right">
<h2>Fish</h2>
<ul data-role="listview" data-theme="b">
<li><a href="#">Salmon</a></li>
<li><a href="#">Pollock</a></li>
<li><a href="#">Trout</a></li>
</ul>
</div>
</li>
</ul>
在标记中,我为列表提供了一个 ID,以便我们可以在 CSS 中轻松引用它,并且我在 LI 中制作了可折叠的 DIV。现在我们使用 CSS 删除一些 padding/margins/borders 以使所有项目排列得很好:
#tabTwoList li.ui-li-static {
padding-top: 0;
padding-bottom: 0;
}
#tabTwoList li .ui-collapsible-heading {
margin-top: 0;
margin-bottom: 0;
}
#tabTwoList li .ui-collapsible-heading-toggle {
border: 0;
}
Working DEMO
我正在尝试将列表视图与面板中的可折叠项目一起使用,但我得到了奇怪的结果。具体来说,这是我正在使用的最小代码。请注意,列表视图中的所有内容均取自 JQuery 移动示例,因此我希望它可以开箱即用。
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="jquery.mobile-1.4.5.min.css" />
<script src="jquery-1.11.3.min.js"></script>
<script src="jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
<h1></h1>
<div data-role="page" id="mainpage">
<div data-role="panel" id="leftpanel" data-position="left" data-display="push">
<!-- panel content goes here -->
<div data-role="tabs" id="tabs">
<div data-role="navbar">
<ul>
<li><a href="#one-tab" data-ajax="false">one</a></li>
<li><a href="#two-tab" data-ajax="false">two</a></li>
</ul>
</div>
<div id="one-tab" class="ui-body-d ui-content">
Empty one!
</div>
<div id="two-tab" class="ui-body-d ui-content">
<ul data-role="listview" data-inset="true" data-shadow="false">
<li data-role="collapsible" data-iconpos="right" data-inset="false">
<h2>Birds</h2>
<ul data-role="listview" data-theme="b">
<li><a href=“#">Condor</a></li>
<li><a href="#">Eagle</a></li>
<li><a href="#">Sparrow</a></li>
</ul>
</li>
<li><a href="#">Humans</a></li>
<li data-role="collapsible" data-iconpos="right" data-inset="false">
<h2>Fish</h2>
<ul data-role="listview" data-theme="b">
<li><a href="#">Salmon</a></li>
<li><a href="#">Pollock</a></li>
<li><a href="#">Trout</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div id="mainheader" data-role="header" data-position="fixed">
<a href="#leftpanel" data-role="button" data-iconpos="notext" data-icon="bars"></a>
<h1>Main page</h1>
</div>
Main page
</div>
</body>
</html>
我得到的是这样的
这可以说是不完全正确的。我做错了什么?
您正在以 jQM 无法处理的方式混合列表视图和可折叠项。然而,你可以用一些 CSS.
使这个看起来 'right'<ul id="tabTwoList" data-role="listview" data-inset="true" data-shadow="false">
<li>
<div data-role="collapsible" data-inset="false" data-iconpos="right">
<h2>Birds</h2>
<ul data-role="listview" data-theme="b">
<li><a href="#">Condor</a></li>
<li><a href="#">Eagle</a></li>
<li><a href="#">Sparrow</a></li>
</ul>
</div>
</li>
<li><a href="#">Humans</a></li>
<li>
<div data-role="collapsible" data-inset="false" data-iconpos="right">
<h2>Fish</h2>
<ul data-role="listview" data-theme="b">
<li><a href="#">Salmon</a></li>
<li><a href="#">Pollock</a></li>
<li><a href="#">Trout</a></li>
</ul>
</div>
</li>
</ul>
在标记中,我为列表提供了一个 ID,以便我们可以在 CSS 中轻松引用它,并且我在 LI 中制作了可折叠的 DIV。现在我们使用 CSS 删除一些 padding/margins/borders 以使所有项目排列得很好:
#tabTwoList li.ui-li-static {
padding-top: 0;
padding-bottom: 0;
}
#tabTwoList li .ui-collapsible-heading {
margin-top: 0;
margin-bottom: 0;
}
#tabTwoList li .ui-collapsible-heading-toggle {
border: 0;
}
Working DEMO