지금 당분간 어려움을 겪고 있습니다.이 코드가 작동하지 않는 이유를 찾을 수 없습니다.자바 스크립트 변수가 정의되지 않음으로 표시됩니다.
#submitmsg를 클릭하면 PHP 파일에서 시간을 가져 오는 다른 기능이 실행됩니다. 이것은 일종의 chat-box이며이 경우에는 Name (즉 Ja)을 표시해야하고 그 옆에 varible "tajm"이 표시되어야합니다. 비록 undefined가 시간 대신에 표시됩니다.
왜이 작동하지 않는 모든 아이디어?
코드는 다음과 니펫을 :
var tajm;
$(document).ready(function() {
$("#submitmsg").click(function() {
time();
var newtext = $("#textmsg").val();
var oldtext = document.getElementById("textbox").innerHTML;
document.getElementById("textbox").innerHTML = oldtext + "<br/><div id='name'>Ja: " + tajm + "</div><div id='red'>" + newtext + "</div>";
$("#textbox").scrollTop($("#textbox")[0].scrollHeight);
});
});
function time() {
var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
tajm = ajax.responseText;
}
};
ajax.open("GET", "r.php", true);
ajax.send(null);
}
비동기 HTTP 요청에 시간이 걸립니다. – Pointy
코드가 "정상적인"순서로 실행되면 콜백 ('ajax.onreadystatechange')을 제공 할 필요가 없습니다. –
저는 setTimeout을 추가하고 조금 지연 시켜서이 문제를 해결했습니다. 내가 이것을 할 수있는 더 효율적인 방법이 있습니까? – xtra