首页 > 解决方案 > 如何在 jQuery 中的 bind keydown 上切换 2 个变量?

问题描述

我有一个文本输入和一个文本区域。当我在“input”中输入一些文本并按“enter”键时,我希望这些文本每次都以不同的类进入文本区域,首先我尝试了“toggle”,但似乎没有用。有没有更好的方法来实现这一目标?

到目前为止,这是我的代码:

$('#input').bind('keydown', function(event){
if(event.keyCode == 13 && $(this).val() != ''){
    event.preventDefault();
    var str1 = $('#textarea').val() + '<p class="a">' + $(this).val() + '</p>';
    var str2 = $('#textarea').val() + '<p class="b">' + $(this).val() + '</p>';
    $('#texarea').val( str1 );
// how to make str1 to str2 on next keydown? like toggle?
    $(this).val('')
    }

});

期望:

按回车键,输入值上的 txts 进入带有“p”扭曲的 textarea,当下次按下回车键时,此 p 具有不同的 a 或 b 类。

感谢您的帮助。

标签: javascriptjquery

解决方案


谢谢@Taplar!经过我的不懈努力和@Taplar 的帮助,我终于成功了!

这是我所拥有的:

    var bool;
    $('#input').bind('keydown', function(event){
if(event.keyCode == 13 && $(this).val() != ''){
    event.preventDefault();
    if (bool == true || bool == null ){ classs='me' };
    if (bool == false) { classs='you' };
    var str = $('#textarea').val() + '<div class="fdia"><div class="avatar '+ classs +'"></div><div class="dialog '+ classs +'">' + $(this).val() + '</div></div>\n';
    $('#textarea').val( str );
    $(this).val('');
    if(bool == false){ bool = true }else{ bool = false };
}

});

每次函数执行时,这个“布尔”家伙都会被赋予真或假,所以下一次会有所不同。

关于 "$('this')" 的问题,它需要更多的工作,我稍后会处理它......


推荐阅读