2023-05-16 10:47:08 +08:00

36 lines
1.3 KiB
JavaScript

(function()
{
/* Expand or collapse text */
function limitText()
{
var fullText;
var limitText;
var $text = $(this);
var options = $.extend({limitSize: 40, suffix: '…'}, $text.data());
var text = $text.text();
if(text.length > options.limitSize)
{
fullText = $text.html();
limitText = text.substring(0, options.limitSize) + options.suffix;
$text.text(limitText).addClass('limit-text-on');
var $toggleBtn = options.toggleBtn ? $(options.toggleBtn) : $text.next('.text-limit-toggle');
$toggleBtn.text($toggleBtn.data('textExpand'));
$toggleBtn.on('click', function()
{
var isLimitOn = $text.toggleClass('limit-text-on').hasClass('limit-text-on');
if(isLimitOn) $text.text(limitText);
else $text.html(fullText);
$toggleBtn.text($toggleBtn.data(isLimitOn ? 'textExpand' : 'textCollapse'));
});
}
else
{
(options.toggleBtn ? $(options.toggleBtn) : $text.next('.text-limit-toggle')).hide();
}
$text.removeClass('hidden');
};
$.fn.textLimit = function(){return this.each(limitText);};
$(function(){$('.text-limit').textLimit();});
})();