我有两个函数,每个函数都应该用ajax在php页面上发送0或1。当按下键盘上的某个键时,发送1的函数将启动,发送0的函数必须在三秒钟后用setTimeout((启动。问题是第二个函数没有发送。我把相应的代码发给你。提前感谢你的帮助,请原谅我英语不太好,读了^^'
我的代码:
function typing() {
var typingBool = 1
if (typingBool != "") {
let donneee = {}
donneee["typingBool"] = typingBool
let donneeeJson = JSON.stringify(donneee)
let xmlhttp = new XMLHttpRequest()
xmlhttp.open("POST", "ajax/typing.php")
xmlhttp.send(donneeeJson)
}
}
function typing2() {
var typingBool = 0
if (typingBool != "") {
let donneee = {}
donneee["typingBool"] = typingBool
let donneeeJson = JSON.stringify(donneee)
let xmlhttp = new XMLHttpRequest()
xmlhttp.open("POST", "ajax/typing.php")
xmlhttp.send(donneeeJson)
}
}
var typingText = document.getElementById('texte');
typingText.addEventListener('keypress', function() {
typing();
setTimeout(function() {
typing2()
}, 3000);
})
这里的主要问题是!=
&!==
:
if (0 != "") { console.log("Won't be displayed"); }
if (0 !== "") { console.log("Will be displayed"); }
话虽如此,你的代码可以缩短一点,这应该有效:
function typing(typingBool){
let donneeeJson = JSON.stringify({ typingBool: typingBool });
let xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "ajax/typing.php");
xmlhttp.send(donneeeJson);
}
var typingText = document.getElementById('texte');
typingText.addEventListener('keypress', function(){
typing(1);
setTimeout(function(){ typing(0); }, 3000);
});