36 lines
1.3 KiB
JavaScript
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();});
|
|
})();
|