Ho un div con del testo che inizialmente non si avvolge e mostra un'ellissi ma voglio dare all'utente la possibilità di fare clic su un'opzione di lettura più e quindi espandere il div per mostrare l'intero testo.È possibile rilevare se il testo è più lungo di una riga nel mio div?
Tuttavia, voglio essere in grado di rilevare se il testo è abbastanza piccolo da stare nel div senza doverlo espandere da una riga e in tal caso nascondere l'opzione show più.
Ecco un link ad un JS Fiddle modificato Ho lavorato fuori:
E il codice da esso:
HTML:
<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>
CSS:
.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;
}
JS:
$(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...");
}
});
});
è possibile rilevare se il testo è abbastanza breve per adattarsi all'interno del div e poi nascondere il read more opzione?
FYI come di jQuery 1.7, il metodo .on() è il metodo preferito per collegare i gestori di eventi a un documento. – j08691
Questa domanda è un [** duplicato **] (http://stackoverflow.com/questions/7738117/html-text-overflow-ellipsis-detection). – blex
Grazie per aver sottolineato che blex ho fatto una ricerca prima di creare la mia domanda ma l'ho persa. –