【发布时间】:2014-07-07 18:18:40
【问题描述】:
我有一个div,其中包含一些最初不换行并显示省略号的文本,但我想让用户能够单击阅读更多选项,然后展开 div 以显示整个文本。
但是,我希望能够检测文本是否足够小以适合 div,而无需从一行扩展它,如果是,则隐藏显示更多选项。
这是我一直在研究的修改过的 JS Fiddle 的链接:
以及其中的代码:
$(document).bind('pageshow', function() {
$(".text-size").click(function() {
$(".ui-li > div").toggleClass("less");
if ($(".text-size").html() == "Read more...") {
$(".text-size").html("Read less...");
} else {
$(".text-size").html("Read more...");
}
});
});
.less {
word-wrap: break-word;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.more {
white-space: normal;
}
.text-size {
display: block;
text-align: right;
padding-top: 10px;
color: blue !important;
cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div data-role="page" id="p1">
<div data-role="content">
<ul data-role="listview" data-inset="true">
<li data-role="list-divider">Item Title</li>
<li>
<div class="less">
Need to detect if this text is long enough to show the "Read More" if it is not don't
</div>
<div class="text-size">Read more...</div>
</li>
</ul>
</div>
</div>
是否可以检测文本是否足够短以适合 div,然后隐藏阅读更多选项?
【问题讨论】:
-
仅供参考,从 jQuery 1.7 开始,.on() 方法是将事件处理程序附加到文档的首选方法。
标签: javascript css html