Javascript Jquery单击send';行不通
大家好,我有一个关于jquery点击发送功能的问题。我是从JSFIDLE创建的。因此,如果您访问演示,那么您可以看到有一个笑脸和文本区域。当您写入一些文本并按enter键时,消息将成功发送。但我还想添加,当您单击笑脸时,它需要从图像Javascript Jquery单击send';行不通,javascript,jquery,ajax,Javascript,Jquery,Ajax,大家好,我有一个关于jquery点击发送功能的问题。我是从JSFIDLE创建的。因此,如果您访问演示,那么您可以看到有一个笑脸和文本区域。当您写入一些文本并按enter键时,消息将成功发送。但我还想添加,当您单击笑脸时,它需要从图像贴纸=“(w1)”中发送(w1),就像单击发送一样。但是点击发送功能不起作用。问题是什么?解决方案是什么?在这方面有人能帮我吗 JS $('.sendcomment').bind('keydown', function (e) { if (e.keyCode
贴纸=“(w1)”
中发送(w1)
,就像单击发送一样。但是点击发送功能不起作用。问题是什么?解决方案是什么?在这方面有人能帮我吗
JS
$('.sendcomment').bind('keydown', function (e) {
if (e.keyCode == 13) {
var ID = $(this).attr("data-msgid");
var comment = $(this).val();
if ($.trim(comment).length == 0) {
$("#commentload" + ID).text("Plese write your comment!");
} else {
$("#commentload" + ID).text(comment);
$("#commentid" + ID).val('').css("height", "35px").focus();
}
}
});
/**/
$(document).ready(function() {
$('body').on("click",'.emo', function() {
var ID = $(this).attr("data-msgid");
var comment = $(this).val();
if ($.trim(comment).length == 0) {
$("#commentload" + ID).text("nothing!");
} else {
$("#commentload" + ID).text(comment);
$("#commentid" + ID).val('').css("height", "35px").focus();
}
});
});
$('body').on('click', '.sm-sticker', function(event) {
event.preventDefault();
var theComment = $(this).parents('.container').find('.sendcomment');
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));
});
HTML
<div class="container one">
<div class="comments-area" id="commentload47">comments will be come here</div>
<div class="user-post" id="postbody47">
<textarea class="sendcomment" name="comment" id="commentid47" data-msgid="47"></textarea>
<div class="stiemo">
<img src="http://d.lanrentuku.com/down/png/1009/networking/emoticon_inlove.png" class="sm-sticker emo" sticker="(w1)"> click smiley to send (w1)</div>
</div>
</div>
</div>
评论将在这里发表
单击要发送的笑脸(w1)
您应该使用以下方法:
$('body').on("click",'.emo', function() {
var ID = $('.sendcomment').attr("data-msgid");
var comment = $('.sendcomment').val();
if ($.trim(comment).length == 0) {
$("#commentload" + ID).text("nothing!");
} else {
$("#commentload" + ID).text(comment);
$("#commentid" + ID).val('').css("height", "35px").focus();
}
});
因此,基本上,您不必使用输入,而是从那里获取msgid和val,对rest使用相同的方法。
所以,当您在某个按钮上附加事件,并且希望使用来自其他dom元素的数据时,您必须在委托函数下使用$(选择器)来获取该元素,这是一种非常简单的方法 试试这个:
只需将comment.val(jQuery.trim(msg+sp+sticker+sp))添加到JS下面的行之后代码>
@TomSlick按enter键工作正常。但如果您单击“微笑”,则它不会发送。错误的选择器-您需要.sendcomment属性…@TomSlick您正在使用的浏览器。我测试了所有浏览器,但没有为我工作。@不管你的代码是好的,但当你点击笑脸,结果是(没有)它意味着没有发送(w1)你在尝试这个??你看到他们没有说什么吗。这意味着没有发送的消息。如果我键入文本并按smiley,我会看到上面的文本,就像我按enter键一样。你是对的,但我也希望当你单击smiley时,它需要发送(w1),但它什么也没说。“无”表示消息未发送。请检查此项。基本上,如果您未在“笑脸”上键入message和pres,则您必须覆盖该情况并发送标签,而不是“无”。有了这些信息,你就可以修复剩下的代码了,对吧?这真的是最好的答案,非常清晰。非常感谢。
var e = $.Event("keydown");
e.keyCode = 13; // # Some key code value
$('.sendcomment').trigger(e);