jQuery сосредоточиться и добавить проблему, когда текстовое поле внимания - PullRequest
0 голосов
/ 14 мая 2010

У меня проблема с append (), когда текстовое поле фокусируется во второй раз.

var i = 1;    
$('textarea').live('focusin', function(){               
        $(this).keydown(function(e){
               var code = e.which;
            if(code === 13) { 
                i++;
                $('#linenumbers').append('<li>' + i + '</li>');}
    });

Этот код будет добавляться к тегу

для каждого числа, 2,3,4,5 (первый li полностью прочитан, поэтому i = 1) Но когда пользователь фокусируется, а затем снова фокусируется, он добавляет две лицевые клавиши,
6 и 7 = первая клавиша 8 и 9 = вторая клавиша

третий фокус это добавить 3 цифры и так далее ..

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

Надеюсь, у вас проблема!

Редактировать, html:

<ul id="linenumbers">
</ul>

<textarea></textarea>

когда я нажимаю Enter, но я получаю новую строку в текстовой области, тогда это должно быть два li в белье.

1 Ответ

0 голосов
/ 14 мая 2010

Основная проблема заключается в том, что вы добавляете другой keydown обработчик событий каждый раз, когда focusin срабатывает. Попробуйте это:

$('textarea').live("keydown", function(e){
    var code = e.which;
    if(code === 13) { 
        var prevIndex = parseInt($('#linenumbers li:last').text());
        $('#linenumbers').append('<li>' + prevIndex++ + '</li>');
    }
});

1008 *

...