jquery表情符号点击功能
jquery emoticon click function
我有一个关于jquery click
函数的问题。我已经在jsfiddle上创建了这个演示。
在这个演示中,您可以看到有三个textarea
和笑脸。当你点击一个微笑符号时,就会出现问题,因为微笑符号sticker="(w1)"
被添加到所有三个textarea
s中。
如何解决此问题
有人能在这方面帮我吗?
HTML:
<div class="container one">
<textarea class="add-y-comment" name="comment" id="ctextarea453" data-id="453" placeholder="First Text area"></textarea>
<div class="stiemo"><img src="http://img1.wikia.nocookie.net/__cb20140214223249/clubpenguin/images/e/e1/CPNext_Emoticon_-_Winking_Face.png" class="sm-sticker" sticker="(w1)"> click for first textarea</div>
</div>
<div class="container two">
<textarea class="add-y-comment" name="comment" id="ctextarea453" data-id="453" placeholder="Second Text area"></textarea>
<div class="stiemo"><img src="http://img1.wikia.nocookie.net/__cb20140214223249/clubpenguin/images/e/e1/CPNext_Emoticon_-_Winking_Face.png" class="sm-sticker" sticker="(w1)"> click for second textarea</div>
</div>
<div class="container tree">
<textarea class="add-y-comment" name="comment" id="ctextarea453" data-id="453" placeholder="Third Text area"></textarea>
<div class="stiemo"><img src="http://img1.wikia.nocookie.net/__cb20140214223249/clubpenguin/images/e/e1/CPNext_Emoticon_-_Winking_Face.png" class="sm-sticker" sticker="(w1)"> click for third textarea</div>
</div>
JS:
$('body').on('click', '.sm-sticker', function(event) {
event.preventDefault();
var id = $(this).attr('id');
var sticker = $(this).attr('sticker');
var msg = jQuery.trim($('.add-y-comment').val());
if(msg == ''){
var sp = '';
} else {
var sp = ' ';
}
$('.add-y-comment').val(jQuery.trim(msg + sp + sticker + sp));
});
您犯了一些错误。您可以获取任何调用add-y-comment
的字段的值,但您只想使用$(this)
将当前字段作为目标
首先,创建一个变量,因为我们将多次使用
var theComment = $(this).parents('.container').find('.add-y-comment');
然后更改到此
var msg = jQuery.trim(theComment.val());
最后(在你的代码之后(,添加这个:
theComment.val(jQuery.trim(msg + sp + sticker + sp));
完整代码:
$('body').on('click', '.sm-sticker', function(event) {
event.preventDefault();
var theComment = $(this).parents('.container').find('.add-y-comment');
var id = $(this).attr('id');
var sticker = $(this).attr('sticker');
var msg = jQuery.trim(theComment.val());
if(msg == ''){
var sp = '';
} else {
var sp = ' ';
}
theComment.val(jQuery.trim(msg + sp + sticker + sp));
});
JSFIDDLE更新
这只是因为你的两行代码片段-
var msg = jQuery.trim($('.add-y-comment').val());
.
.
.
$('.add-y-comment').val(jQuery.trim(msg + sp + sticker + sp));
在这两行中,您都不会检索和更新textarea
的值,该值位于单击的表情符号之前。这是正确的代码-
var msg = jQuery.trim($(this).parent('.stiemo').prev('.add-y-comment').val());
.
.
.
$(this).parent('.stiemo').prev('.add-y-comment').val(jQuery.trim(msg + sp + sticker + sp));
JSFIDDLE演示
相关文章:
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何防止网页加载后自动启动功能
- 除修剪外的其他功能
- 悬停功能触发器
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 在.csv文件中写入学位符号
- 删除CKEditor工具栏按钮,但不删除功能
- 异步facebook功能
- 使用相同的数据集绘制各种符号
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- jQuery滚动功能只工作一次
- 为图像滑块jquery添加项目符号功能
- 使用功能更改文本并包含项目符号图像
- 具有搜索文本的功能,不能很好地处理标点符号/符号.Jquery/Jquery mobile.
- javascript中^(插入符号)符号的含义和功能
- Chrome/Firefox中双美元符号选择器查询功能的来源是什么
- jquery表情符号点击功能
- 如何使用播放,暂停,重置功能控制许多折线上的符号(使用谷歌地图API)