我有以下代码:如何在另一个功能完成后立即激活功能?
<script>
function refreshChat() {
var id = "'.$convers_id.'";
var receiver = "'.$system->getFirstName($second_user->full_name).'";
$.get("'.$system->getDomain().'/ajax/refreshChat.php?id="+id+"&receiver="+receiver, function(data) {
$(".conversation-content").html(data);
});
var scroller = $(".conversation-message-list").getNiceScroll(0);
$(".conversation-message-list").getNiceScroll(0).doScrollTop($(".conversation-content").height(),-1);
}
window.setInterval(function(){
refreshChat();
}, 2000);
function sendMessage() {
var user2 = "'.$user2.'";
var message = $("#message");
if(message.val() != "" && message.val() != " ") {
$.get("'.$system->getDomain().'/ajax/sendMessage.php?id="+user2+"&msg="+encodeURIComponent(message.val()), function(data) {
$(".conversation-content").html(data);
message.val("");
});
}
}
$(document).keypress(function(e) {
if(e.which == 13) {
sendMessage();
}
});
</script>
眼下,refreshChat函数调用的AJAX脚本,每2秒。当您输入消息并按下回车键时,它会调用一个不同的ajax脚本。我想要做的是同时调用两个函数。所以脚本首先调用sendMessage函数,然后刷新。
我该怎么做?我已经尝试将其更改为:
<script>
function refreshChat() {
var id = "'.$convers_id.'";
var receiver = "'.$system->getFirstName($second_user->full_name).'";
$.get("'.$system->getDomain().'/ajax/refreshChat.php?id="+id+"&receiver="+receiver, function(data) {
$(".conversation-content").html(data);
});
var scroller = $(".conversation-message-list").getNiceScroll(0);
$(".conversation-message-list").getNiceScroll(0).doScrollTop($(".conversation-content").height(),-1);
}
function sendMessage() {
var user2 = "'.$user2.'";
var message = $("#message");
if(message.val() != "" && message.val() != " ") {
$.get("'.$system->getDomain().'/ajax/sendMessage.php?id="+user2+"&msg="+encodeURIComponent(message.val()), function(data) {
$(".conversation-content").html(data);
message.val("");
});
}
}
$(document).keypress(function(e) {
if(e.which == 13) {
sendMessage();refreshChat();
}
});
</script>
但是,这只是第一个进入的消息,并且只刷新第二按键(输入)。我想先谢谢大家帮助我。
几乎没有...当我进入一个消息,它加载之前的消息,所以每次我进入一个消息的时候,前面的人会在屏幕 – Aurora
我们已经加载那么解决了最初的问题。很高兴我能帮上忙。随着你的后续问题,我建议在SO上创建一个新问题,并提供更多关于新问题的信息(比如你的php脚本和返回的数据),这样我们可以更好地为你提供帮助。 –
或者,使用promise:'$ .get(...)。done(refreshChat);' – 4castle