#javascript #html #css
#javascript #HTML #css
Вопрос:
У меня есть скрипт, который заставляет текстовые области расширяться, чтобы вместить текст внутри них. Я хочу, чтобы это применялось ко всем текстовым областям на моем веб-сайте, за исключением одного. Есть ли способ остановить скрипт для одного элемента.
Используемый скрипт:
var autoExpand = function (field) {
// Reset field height
field.style.height = 'inherit';
// Get the computed styles for the element
var computed = window.getComputedStyle(field);
// Calculate the height
var height = parseInt(computed.getPropertyValue('border-top-width'), 10)
parseInt(computed.getPropertyValue('padding-top'), 10)
field.scrollHeight
parseInt(computed.getPropertyValue('padding-bottom'), 10)
parseInt(computed.getPropertyValue('border-bottom-width'),
10);
field.style.height = height 'px';
};
document.addEventListener('input', function (event) {
if (event.target.tagName.toLowerCase() !== 'textarea') return;
autoExpand(event.target);
}, false);
Текстовая область:
<textarea id="sendie" maxlength = '100' ></textarea>
Комментарии:
1. да, не применяйте его к тому, к которому вы не хотите его применять — возможно, измените строку 37
2. Что это за скрипт и как он нацелен на текстовые области?
3. сохраните свой список селекторов в виде массива. Отфильтруйте массив, чтобы удалить нежелательный div. Применить функцию к остальной части списка выбора.
4. @RoddyoftheFrozenPeas Он просто применяет эффекты ко всем текстовым областям.
Ответ №1:
CSS
textarea {
resize: none;
}
По идентификатору:
#sendie {
resize: none;
}
Если это не работает, внедрите это в свою функцию
document.addEventListener('input', function (event) {
if (event.target.tagName.toLowerCase() !== 'textarea') return;
autoExpand(event.target);
document.getElementById("sendie").style.resize = "none"
}, false);
Предполагая, что «sendie» — это тот, с которым вы не хотите связываться.
Комментарии:
1. Я отредактировал свой ответ. Я действительно думаю, что переработанный JS сработает для вас.