Javascript Jquery单击send';行不通

Javascript Jquery单击send';行不通,javascript,jquery,ajax,Javascript,Jquery,Ajax,大家好,我有一个关于jquery点击发送功能的问题。我是从JSFIDLE创建的。因此,如果您访问演示,那么您可以看到有一个笑脸和文本区域。当您写入一些文本并按enter键时,消息将成功发送。但我还想添加,当您单击笑脸时,它需要从图像贴纸=“(w1)”中发送(w1),就像单击发送一样。但是点击发送功能不起作用。问题是什么?解决方案是什么?在这方面有人能帮我吗 JS $('.sendcomment').bind('keydown', function (e) { if (e.keyCode

大家好,我有一个关于jquery点击发送功能的问题。我是从JSFIDLE创建的。因此,如果您访问演示,那么您可以看到有一个笑脸和文本区域。当您写入一些文本并按enter键时,消息将成功发送。但我还想添加,当您单击笑脸时,它需要从图像
贴纸=“(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);