猿问

使用ajax和setTimeout()发送两个布尔值的问题

我有两个函数,每个函数应该使用 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);

})


摇曳的蔷薇
浏览 112回答 1
1回答

蝴蝶不菲

这里的主要问题是&之间的区别!=!==: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);});
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答