Запретить плагину jQuery Elastic изменять размер текстовой области при нажатии снаружи

#javascript #jquery #dom

#javascript #jquery #dom

Вопрос:

кто-нибудь здесь использует плагин jQuery Elastic?

Довольно удобно, но я просто не нахожу способа запретить скрипту слегка изменять высоту текстовой области при нажатии из нее. Просто выполните тест: увеличьте область, введя что-нибудь, и щелкните вне текстовой области.

Это расстраивает и дает плохой опыт, поскольку у меня есть кнопка внизу моей текстовой области, которая также перемещается затем. Есть идеи?

Ответ №1:

Просто инициализируйте его с помощью $('#container').elastic().trigger('blur')

Это приведет к запуску команд, которые выполняются после события размытия, изменяя размер текстового поля.

Комментарии:

1. это просто запускает событие при инициализации страницы, но я запускаю другое событие размытия, когда заканчиваю печатать, и оставляю текстовую область, поэтому она не работает…

2. я подумал вот о чем: ваша проблема в том, что он автоматически изменяет размер, даже если вы не меняете текст, и это меняет положение вещей. итак, я просто переместу вещи первым делом, чтобы пользователь не заметил, что они перемещаются позже.

Ответ №2:

добавьте наведение курсора мыши к привязке события:

  $textarea.bind('blur mouseout',function(){ 
  

в строке 140.

Ответ №3:

Я столкнулся с той же проблемой, и после долгих поисков я нашел решение. вот что вам нужно изменить в файле Jquery Elastic JS.

Найдите следующую строку.

 minheight    = parseInt ............
  

и измените его с помощью этой строки.

 minheight    = parseInt($textarea.css('height'),5) || lineHeight*2,
  

Это должно решить проблему щелчка за пределами текстовой области и изменения размера поля.