жить для jquery упругий плагин? - PullRequest
2 голосов
/ 22 декабря 2009

Я использую jquery эластичный плагин для расширения текстового поля. он отлично работает, но я хочу использовать это в текстовом поле, которое добавляется в DOM с помощью ajax, но, к сожалению, этот плагин не имеет встроенной функции.

есть ли способ решить эту проблему?

http://www.unwrongest.com/projects/elastic/

Ответы [ 3 ]

4 голосов
/ 22 декабря 2009

Если у вас есть контроль над созданием текстовой области, просто вызовите .elastic() для текстовой области после ее создания:

// In whatever AJAX callback creates the textarea...
var newTextarea = $('<textarea></textarea>');

// Append the element to the DOM wherever it belongs...
parentElement.append(newTextarea);

// Add elastic behavior.
newTextarea.elastic();
4 голосов
/ 22 декабря 2009

С помощью jQuery 1.4 вы можете сделать это:

$("textarea").live("focus", function() {
    $(this).elastic().die("focus");
});

jQuery 1.3.x не поддерживает событие focus для live (), поэтому становится немного сложнее:

$("textarea").live("keydown", elasticize).live("mousedown", elasticize);

function elasticize() {
    $(this).elastic().die("keydown").die("mousedown");
}

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

0 голосов
/ 25 мая 2015

Другие ответы предлагают уничтожить обработчик фокуса, но это может нарушить другие зависимости.

Вместо этого вы можете пометить текстовое поле с помощью class = "astic ". После инициализации упругости вы можете удалить класс «упругости», чтобы избежать повторных начальных значений.

$(document) .on('focus','textarea.elastic',function(e) { $(this).removeClass('elastic').elastic(); })

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