点击发送不起作用

Jquery Click send doesn't work

本文关键字:不起作用      更新时间:2023-09-26

大家好,我有一个关于jquery点击发送功能的问题。我从jsfiddle创建了这个演示。如果你访问演示,你会看到有一个笑脸符号和文本区。当你写一些文字,并按下回车键,然后消息发送成功。但我想补充的是,当你点击笑脸符号时,它需要从图像sticker="(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));
    });

<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>

try this:

只是附加在JS下面theComment.val(jQuery.trim(msg + sp + sticker + sp));

行之后
var e = $.Event("keydown");
e.keyCode = 13; // # Some key code value
$('.sendcomment').trigger(e);
演示

你应该这样做:

$('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();
    }
});

所以基本上代替这个你必须使用input并从那里获取msgstr和val,对rest使用相同的方法。当你在某个按钮上附加事件而你想使用来自其他dom元素的数据时你需要在委派函数下使用$(selector)来获取那个元素,非常简单的方法。