javascript - 如何在 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 类。
感谢您的帮助。
解决方案
谢谢@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')" 的问题,它需要更多的工作,我稍后会处理它......
推荐阅读
- javascript - 会话用户有时具有价值有时未定义
- android - 使用 android studio 创建自定义形状?
- python - 过滤包含 NaN 值的数据框,结果为空数据框
- javascript - 鼠标滚轮触发时多次触发函数
- ajax - 如何防止多个ajax?
- javascript - 如何在javascript中重置变量
- cmake - 如何检查为什么在 find_package() 中拒绝 cmake 配置
- caching - Redis 缓存显示状态未连接
- laravel - 需要让 Laravel 通过 http 而不是 https 发送它的 curl 请求
- javascript - 应用程序在 IE 11 中使用企业模式中断