问题是当我在输入框中写下评论后按回车键时,消息被发送到数据库中,然后通过 Ajax 调用检索。
一切都很顺利,当我不聚焦输入字段然后再次聚焦并开始输入新消息并按 Enter 时,消息会发送两次,如果我再次这样做,则消息会发送 3 次,依此类推。代码有什么问题?我该如何解决这个问题?
$(".type_comment").click(function(){
container = $(this);
if ($(this).val() == "Type a comment.")
{
$(this).val("");
$(this).css({ 'font-size':'13px','opacity':'1' });
}
nr_crt = container.attr("nr_crt");
container.keyup(function(e)
{
code = (e.keyCode ? e.keyCode : e.which);
if (code == 13)
{
var chatmsg = container.val();
var comment_id = $("#main-photo"+nr_crt).attr("commentid");
var name = <?php echo json_encode($_SESSION['username']); ?>;
$.post('../utility/postcomment.php', { comment: chatmsg, name: name, comment_id: comment_id } ,
function(output) {
});
code = null;
chatmsg = "";
container.val("");
var time = setTimeout(function(){
$.post('../utility/fetchcomments.php', { comment_id : comment_id , name : name} ,
function(results) {
$(".comment_append"+nr_crt).append(results);
});
clearTimeout(time);
},500);
}
});
});