Jquery点击发送不起作用

时间:2015-09-11 16:17:12

标签: javascript jquery ajax

大家好我有一个关于jquery点击发送功能的问题。我从jsfiddle创建了这个demo。因此,如果您访问该演示,那么您可以看到有一个笑脸和textarea。当您编写一些文本并按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>

2 个答案:

答案 0 :(得分:1)

你应该用这个:

$('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)来获取该元素,这非常简单。

答案 1 :(得分:1)

试试这个:

只需在行theComment.val(jQuery.trim(msg + sp + sticker + sp));

之后添加到JS下方
var e = $.Event("keydown");
e.keyCode = 13; // # Some key code value
$('.sendcomment').trigger(e);

Demo