Essas pequenas linhas de código permitem exibir o botão ‘Ver mais’ nos seus textos de parede, para que não pareça gigantesco ou não sei. O que quer que você possa usar.
$(document).ready(function() {
var my_div = $('.that_div_whose_selector_is_too_long');
/* Expands the selection to every item with that class */
my_div.each(function(event) {
var max_length = 150;
/* Verify if it surpasses the limit */
if (my_div.html().length > max_length) {
/* Cuts the text with the substr method. I'll explain it below */
var short_text = $(this).html().substr(0, max_length);
var long_text = $(this).html().substr(max_length);
/* Modifies the html so it displays the shortened text */
$(this).html(short_text +
"<a href='#' class='view_more_button'>...View more</a>" +
"<span class='rest_of_text' style='display: none;'>" + long_text + "</span>");
/* Note how we added a span containing the rest of the text, but it is not showing itself. */
$(this).find('a.view_more_button').click(function(event) {
/* Prevents the 'a' from changing the url */
event.preventDefault();
/* Hides the 'view more' */
$(this).hide();
/* Displays the rest of the text */
$(this).parents(my_div).find('.rest_of_text').show();
});
}
});
});
Agora, sobre a função substr . Esta função corta uma string (neste caso, o html dentro de nosso div) e tem dois parâmetros:
- O ponto de partida (cada string começa em 0)
- O ponto final ( opcional )
primeiro nós fizemos isso:
var short_text = $(this).html().substr(0, max_length);
Digamos, por exemplo, que a string dentro de nosso div seja “Olá, sou um div incrível” e nosso comprimento máximo seja 16 . Nesse caso, ** texto curto ** seria igual a:
Hello, I'm an awe
Dado isso, usando substr para obter o resto da string, usaríamos:
var long_text = $(this).html().substr(max_lenght);
E é o mesmo que:
some div
Então, quando unimos esses dois, obtemos a mensagem completa …
Hello, I'm an awesome div
|-- short text -||-long text-|
* ATUALIZAÇÃO * – solicitação Ajax
Agora, para um exemplo prático com ajax, o código seria quase o mesmo. Tudo o que você precisa fazer é uma solicitação $ .get () .
$.get('your_file.txt', function(data) {
// Same instructions from above
var data_short = data.substr(0, max_length);
var data_long = data.substr(max_length);
// ...As I said, same instructions from above.
}); //End of the $.get() request.