开发者

jQuery focusin and append problem when textarea focus

I having problem with append() when the textbox is focus the second time.

var i = 1;    
$('textarea').live('focusin', function(){               
        $(this).keydown(function(e){
               var code = e.which;
            if(code === 13) { 
                i++;
                $('#linenumbers').append('<li>' + i + '</li&开发者_StackOverflow中文版gt;');}
    });

This code will append on

  • tag for each number, 2,3,4,5 (the first li is allread added, that why i=1) But when the user focus out and then focus in again it add two li foreache keydown,

    6 and 7 = first keydown 8 and 9 = second keydown

    third focus it add 3 numbers, and so on..

    How can i check that i just add one li each time you hit enter.

    Hope you get the problem!

    Edit, the html:

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

    when i hit the enter but i get a new line in textarea then it should be two li in linenumbers.


    The main problem is that you add another keydown event handler each time focusin fires. Try this:

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

  • 0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新问答

    问答排行榜