我有以下代碼:如何在另一個功能完成後立即激活功能?
<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