function truncateText (el, maxHeight?) {
let text = el.innerHTML.trim();
while(maxHeight ? (el.clientHeight > maxHeight) : (el.clientHeight < el.scrollHeight)) {
text = el.innerHTML.trim();
if (text.split(' ').length <= 1) {
break;
}
el.innerHTML = text.replace(/\W*\s(\S)*$/, '...');
}
}
export default truncateText;
import truncateText from './truncateText';
function truncateHTML(el, maxHeight?) {
let text = el.innerHTML.trim();
const tags = [];
// remove all tags and collect them in array
text = text.replace(/<[^>]*>/g, (tag, position) => {
tags.push({ tag, position });
return '';
});
el.innerHTML = text;
// truncate text
truncateText(el, maxHeight);
text = el.innerHTML.trim();
// restore all tags to their positions
for (let item of tags) {
const { tag, position } = item;
if(position <= text.length - 4) {
text = text.substring(0, position) + tag + text.substring(position);
} else {
text += tag;
}
}
// remove all empty tags from end of string
text = text.replace(/<[^\/>][^>]*><\/[^>]+>/g, '');
el.innerHTML = text;
}
export default truncateHTML;
Именно по-этому лучше никогда не связываться с фрилансерами, т.к. их задача запилить результат и слинять, вместо реализации адекватного поддерживаемого решения))
Оба варианта - печаль с точки зрения качества кода. Почему:
Т.е. тут скорость JQuery бесспорна, только этот код пахнет. Что нивелирует весь профит за счёт последующего запутывания лапши.
$('.js-select').click(someHandler);
$('.js-slider').slideshow();
$('.js-contact-us-form').submit(submitHandler);
Все тащат трактор туда, где он не нужен, просто не удосужившись изучить принцип работы этой самой лопаты.
JS всё же на порядок быстрее и проще JQuery.
$('.select').click(handler);
для анимаций стоит использовать css
Вжух! И причём полностью настраивается до мелочей переходов добавлением обычных стилей.
render() {
return <div>{this.state.data}</div>;
}
Он устарел по той причине, что его возможности уже реализованы в JS, какие-то штуки делаются дольше, но из-за них нет смысла тащить jQuery, но есть смысл тащить, если нужны определенные плагины от jQuery.
Какой смысл использовать селекторы, когда есть querySelector
$('.select').click(handler);
Какой смысл использовать всякие fadeIn, fadeOut, slideDown и прочие, когда transition тащит?
Разве не считается устаревшей штукой то, что уже делает определенные штуки хуже чем встроенная штука?
Вы пытаетесь мне доказать то, что я написал.
jQuery - есть смысл, если у стоит задача быстро (не качественно) склепать просто сайт. Что-то чуть сложнее (калькуляторы, скрипты), то jQuery уже стоит под вопросом.
Давайте, расскажите мне, в каких проектах вы используете jQuery. Я послушаю.
Для чего вам вообще понадобилось экспортировать метод?