【发布时间】:2014-03-19 20:36:08
【问题描述】:
我想在列表分隔符内放置一个图标,但似乎 jQuery Mobile 允许我将数据图标仅应用于普通列表项,而不是列出具有 data-role='list-divider' 的项目已分配。
简单地说,我希望列表分隔符显示一个信息按钮,以便为用户提供有关此类别的更多信息,它应该如下所示:
重点是,我想将信息图标(带有data-icon='info' 或class='ui-icon-info')放在列表分隔符中,同时保持整体风格的一致性,即:
- 类别以列表分隔符为首,而不是以样式看起来像列表分隔符的列表项为首。
- 图标显示在右侧,如下面列表项中的箭头所示。图标必须具有与箭头相同的外观风格,这意味着它不应看起来像一个按钮或在其周围有额外的框架。
- 列表分隔符,或者至少是图标,应该是可点击的,这样用户才能获得关于这个类别的信息。
我希望无需任何 CSS 自定义或 JavaScript 摆弄,仅使用数据属性来实现此目标。
这是我得到的(使用 jQuery Mobile 1.3.2):
-
带有数据图标的列表项:
<li data-theme='a' data-icon='info'><a href='#' onclick='alert("Some info...");'>Category: A</a></li>结果:
- 信息图标的正确外观
- 类别外观错误,因为使用了普通列表项而不是列表分隔符
-
使用分配了
data-role='list-divider'的列表项:<li data-role='list-divider' data-icon='info'><a href='#' onclick='alert("Some info...");'>Category: A</a></li>结果:
- 根本没有图标
- 标题外观错误,仅超链接文本而不是整个列表项
-
内含信息按钮的列表分隔符:
<li data-role='list-divider'>Category: A<a href='#' data-role='button' data-icon='info' data-mini='true' data-iconpos='notext' data-inline='true' data-theme='a' onclick='alert("Some info...");'>Category: A</a></li>结果:
- 信息按钮外观错误
- 按钮有一个边框,为了保持一致性,我想删除它,所以图标显示在它通常的圆盘外观中。删除
data-role='button'没有帮助,因为按钮根本不会呈现,因此不会显示图标。 - 图标的位置不在右侧。我知道可以使用
data-iconpos='right',但我已经将此属性用于纯图标 (notext) 布局。
- 按钮有一个边框,为了保持一致性,我想删除它,所以图标显示在它通常的圆盘外观中。删除
- 类别外观不令人满意,因为按钮增加了它的高度。即使
data-mini='true'也无济于事。
- 信息按钮外观错误
我知道有十几种简单的方法可以用正常的、较少受 jQuery Mobile 固定的方法来实现,但是在 3 种方法之后,我很想知道如何使用 jQM 来实现。
【问题讨论】:
-
这就是您要找的东西吗? jsfiddle.net/Palestinian/he3HK
-
感谢您的回答@Omar。不幸的是,用户将无法获得有关类别的信息,因为您的示例不包含与列表分隔符或图标交互的可能性
-
哦,你需要一个按钮,而不仅仅是一个图标。
-
这是我能用
data-role="button"做的最好的事情jsfiddle.net/Palestinian/2PRv3/1 无论如何,您可以在我之前的评论中为图标添加更多自定义CSS,使其看起来像一个按钮并将事件绑定到它。 -
我知道我在这里很挑剔,但是使用按钮方法(我在第三种方法中偶然发现了它)图标的外观发生了变化,并且看起来与箭头的箭头不一致不再列出项目。此外,还会涉及额外的 CSS(好吧,诚然,这不是问题,我只是希望首先找到 jQM 原生方式),但最重要的是,让整个列表分隔符可点击会很棒而不仅仅是按钮本身,它会反映下面可点击列表项的行为。无论如何,我真的很感谢你的努力!谢谢你
标签: jquery-mobile jquery-mobile-listview