繁体   English   中英

jQuery单击发送不起作用

[英]Jquery Click send doesn't work

大家好,我对jquery点击发送功能有一个疑问。 我已经从jsfiddle创建了这个演示 因此,如果您访问演示,则可以看到一个笑脸和文本区域。 当您写一些文本并按Enter时,消息发送成功。 但我想还可以添加当您单击笑脸那么它需要发送(w1)从图像sticker="(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>

您应该使用此:

$('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,并使用相同的方法进行休息。 因此,当您将事件附加到某个按钮上并且想要使用其他dom元素中的数据时,必须通过在委托函数下使用$(selector)来获取该元素,这是一种非常简单的方法。

尝试这个 :

只需在theComment.val(jQuery.trim(msg + sp + sticker + sp));行之后添加到JS下面theComment.val(jQuery.trim(msg + sp + sticker + sp));

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

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM