Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.04.2013, 12:20
Аспирант
Отправить личное сообщение для Harvey Посмотреть профиль Найти все сообщения от Harvey
 
Регистрация: 19.08.2011
Сообщений: 61

Проблема с событием keydown
Привет!

Ребят, такая трабла. Есть редактор текста в айфрейме, ширина фиксированная. При вводе символов вычисляется высота рабочей области(та, где вводим текст) и устанавливается высота айфрейма для того чтобы избежать появления полосы прокрутки, то есть он автоматически расширяется до необходимой высоты. Проблема в том, что все это происходит по событию keyup и из-за этого, в тот момент когда мы нажали клавишу Enter(чтоб изменить значение высоты) но еще не отпустили, весь контент дергается вверх, потому как высота в этот момент еще не просчитана. Конечно, было бы логично сделать все это по событию keydown, но тут кроется еще более серьезная проблема. Событие keydown наступает до того, как меняется высота области, в итоге происходят те же смещения высоты, но не на мгновение, а до того пока мы не нажмем любую клавишу еще раз, чтобы обновить значение.

Как мне выйти из ситуации? Каким образом просчитывать и обновлять высоту без заметной задержки?

Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 18.04.2013, 12:32
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

код пожалуйста, который наваяли
Ответить с цитированием
  #3 (permalink)  
Старый 18.04.2013, 12:43
Аспирант
Отправить личное сообщение для Harvey Посмотреть профиль Найти все сообщения от Harvey
 
Регистрация: 19.08.2011
Сообщений: 61

$('#event-mail-form iframe').contents().keyup(function(){
    $('#event-mail-form iframe').height($('#event-mail-form iframe').contents().find('#body-edit-newuser-body').height() + 20)
})
Ответить с цитированием
  #4 (permalink)  
Старый 18.04.2013, 12:57
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

а если обернуть settimeout???
$('#event-mail-form iframe').contents().keydown(function()
    {
    setTimeout(function()
        {
        $('#event-mail-form iframe').height($('#event-mail-form iframe').contents().find('#body-edit-newuser-body').height() + 20);
        },1);
    });
Ответить с цитированием
  #5 (permalink)  
Старый 18.04.2013, 14:24
Аспирант
Отправить личное сообщение для Harvey Посмотреть профиль Найти все сообщения от Harvey
 
Регистрация: 19.08.2011
Сообщений: 61

Святая Корова! Точно. Спасибо большое
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При повторном фокусе добавляются события blur и keydown sdaww Events/DOM/Window 2 05.07.2012 15:15
Проблема с событием onerror fr0st1k Events/DOM/Window 2 02.07.2012 23:22
Проблема с событием клика Garik Events/DOM/Window 2 28.06.2011 16:28
проблема с событием click. morfie jQuery 1 14.10.2010 04:33
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47