[英]Javascript Ajax loader gif doesn't work well
我正在尝试使用XMLHttpRequest创建一个Ajax加载器gif。
如果我在输入中键入某物,则会看到一个列表,其中包含不同的单词,这是您在搜索框中键入内容时经常在搜索引擎中看到的技术。 但是我也看到了Ajax加载程序,即使我删除了文本,它也保持加载状态。 那不是我想要的。
我做错了什么?
HTML:
<input type="text" name="input" id="input" />
<div id='loading' style='display: none'><img src="gifs/ajax-loader.gif" title="Loading" /></div>
<div id="result"></div>
Javascript:
var input = document.getElementById("input");
input.addEventListener("keyup", function () {
var loader = document.getElementById("loading").style.display = "block";
var request = new XMLHttpRequest();
request.open("GET", "ajaxtest.php?data=" + input.value, true);
request.send();
request.onreadystatechange = function () {
if (request.readyState === 4) {
//loader.src = "gifs/ajax-loader.gif";
document.getElementById("result").innerHTML = request.responseText;
}
if (document.getElementById("input").value === "") {
document.getElementById("result").innerHTML = "";
}
};
loader.style.display = "none";
});
首先添加一个事件,以获取更好的输入值:
input.addEventListener("keyup change", function () {
您可以使用一些jQuery代码:
$("#loading").hide();
........
if (request.readyState === 4) {
//replace loader.src = "gifs/ajax-loader.gif"; with...
$("#loading").show();
document.getElementById("result").innerHTML = request.responseText;
}
if (document.getElementById("#input").value === "") {
document.getElementById("result").innerHTML = "";
//new code
$("#loading").hide();
}
};
//replace loader.style.display = "none"; with ...
$("#loading").hide();
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.