Скорее всего, это плагин elastic
, который вы вызываете, потому что очистка интервала при каждом нажатии клавиши не должна создавать большого (если есть) лага.
Если плагин elastic
изменяет textarea
, когда пользователь фокусируется на элементе ввода, вы можете вместо этого связать его с событием focus
, чтобы он не запускал каждое нажатие клавиши:
<script type="text/javascript">
$(document).delegate("#comment_textarea", "keydown", function () {
clearInterval(auto_refresh);
auto_refresh = 0;
}).delegate("#comment_textarea", "focus", function () {
$('#comment_textarea').elastic();
});
</script>
Обратите внимание, что я использовал .delegate()
вместо .live()
. .delegate()
позволяет выбрать корневой элемент, отличный от document
.
Если вам нужно, чтобы плагин elastic
вызывался внутри обработчика событий keydown
или у вас все еще были проблемы с задержкой, вы всегда можете проверить значение переменной auto_refresh
:
if (auto_refresh !== 0) {
clearInterval(auto_refresh);
auto_refresh = 0;
}
Этот код будет находиться внутри вашего keydown
обработчика событий.