Некоторое время назад я решил проблему для кого-то, чтобы хотел, чтобы его текстовая область выросла . Я сделал функцию, которая слушает события scroll
и keyup
области и пересчитывает количество строк. Я хотел использовать код в другом проекте, но есть проблема. Текстовые области не известны. Чтобы решить эту проблему, я использую live
вместо bind
, так что будущие области также будут связаны.
Теперь я обнаружил, что live
выполняется намного медленнее, чем bind
. Я создал упрощенный пример для jsFiddle . Верхняя текстовая область ведет себя так, как я хочу, но вновь добавленные из них мерцают из-за поздней передачи сигналов (я использую Chrome).
Как мне сделать live
таким же быстрым, как bind
? Проблема в том, что scroll
нельзя использовать с оператором live
, Есть ли способ включить scroll
для live
? Может быть, есть событие jQuery, которое сигнализирует мне о добавлении новой TextArea, поэтому я могу использовать привязку для добавления scroll
в вновь созданный элемент?
Я с нетерпением жду ваших идей.
РЕДАКТИРОВАТЬ: Изменена ссылка на код. Убран код прокрутки. Добавлена еще одна кнопка для создания другой текстовой области. Проблема связана с «прокруткой». Не стреляет.
Уточнение: Я не буду знать, какая функция создаст текстовую область. Я вижу мерцание динамически добавляемых полей в Chrome .
Для будущих читателей:
В jQuery 1.3.x только следующие
События JavaScript (в дополнение к
пользовательские события) могут быть связаны с
.live (): click, dblclick, keydown,
keypress, keyup, mousedown, mousemove,
mouseout, mouseover, and mouseup
. Как
jQuery 1.4 метод .live ()
поддерживает пользовательские события, а также все
События JavaScript, которые пузырились. По состоянию на
JQuery 1.4.1 даже фокус и размытие работы
с живой (отображение на более
уместно, кипит, события сосредоточены
и фокусировка). Начиная с jQuery 1.4.1
событие hover может быть указано (отображение
к мышиному центру и отпуску мышью, которые,
в свою очередь, отображаются при наведении мыши и
MouseOut).