Делал только для input. Для textarea в принципе тоже можно, но там надо еще и высоту считать, что, в принципе, решается тем же способом, только с указанием max-width. Поэтому с кроссбраузерностью будут проблемы.
Поэтому и возник вопрос. А если как-нибудь по высоте строки самой подсчитать? Например, длину мы ведь можем подсчитать, так? В конце длины добавлять невидимый символ, а потом по нему считать количество строк и умножить на высоту строки. Почему-то именно такая идея возникла
Мы не знаем где браузер расставит переводы строк, да и незачем знать в общем-то. Достаточно содержимое textarea отправить в скрытый div и посмотреть какая получилась высота в пикселях. Только вот надо учесть два момента: 1. ширина скроллбара, 2. содержимое textarea может скроллиться.
Высчитать ширину скроллбара можно и тем же дивом (overflow='scroll'). Правда придется измерять два раза.
А вот по поводу решения второй проблемы надо подумать.
А насколько это сложно написать без использования jQuery? Много переделывать?
А то так вы оставляете кучу людей без решения и еще группу заставляете использовать jQuery из-за одного плагина
Действительно, пришел человек, написал статью, заставил прочитать, мало того, оставил людей без решения на jQuery и ещё заставляет использовать этот самый jQuery.
Редиска!
Не согласен. Скрипт работает в любом случае. Если в sandbox.html поставить вызов типа $jq = jQuery.noConflict(); тогда действительно работать перестанет, но это уже проблема не компонента, а юзера. Сам же плагин использует стандартный шаблон (function ($) {})(jQuery);
да, ваша правда — сам плагин использует правильную конструкцию.
однако, видимо, какие-то евенты обрабатываются неверно:
1. включить jQuery.noConflict();
2. подключить плагин — все заработает, саджест будет выдаваться.
3. при наведении мышки на пункт выпадающего меню вылетает ошибка: $ is not a function
Я когда подключал не стал сильно разбираться что там не так и просто заменил все $ на jQuery :)
PS. спасибо за разработку, использую этот плагин сейчас в проекте.
Вот за этот багрепорт спасибо. Действительно, в одном месте есть inline вызов (на onmouseover) с использованием $. В 10-й ревизии исправлено. Должно работать нормально.
RTM Context Autocomplete Menu