JavaScript/jQuery 脚本在没有循环的情况下循环 3 次
JavaScript/jQuery script looping 3 times without a loop
我正在尝试让一个通知框在错误/成功时弹出,然后在 5 秒后隐藏。问题是它出现,隐藏,然后重复3次。这很烦人,我相信它会让用户感到烦恼。
我想也许我的javascript很糟糕,所以我尝试了jquery,结果仍然是一样的。
function ajaxObj(meth, url) {
var x = new XMLHttpRequest();
x.open(meth, url, true);
x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
return x;
}
function ajaxReturn(x){
if(x.readyState == 4 && x.status == 200){
return true;
}
}
function login() {
var u = _("user").value;
var p = _("pass").value;
var status = _("status");
var ajax = ajaxObj("POST", "login_script.php");
ajax.onreadystatechange = function(){
if(ajax.responseText !== "success"){
status.innerHTML = ajax.responseText;
_('status').className = "nNote nFailure hideit";
var svalue = _('status').innerHTML;
_('status').innerHTML = svalue + '<span style="float:right; margin-right:20px; font-size:10px;" onclick="hideStatus()"> X </span>';
$( document ).ready(function() {
$('#status').slideDown(1000).delay( 5000 ).slideUp(1000);
});
}
};
ajax.send(
"u=" + u
+ "&p=" + p);
}
如果您想查看它在做什么,请访问此站点并单击"登录"
更改:
if(ajax.responseText !== "success"){
自:
if(ajaxReturn(ajax) && ajax.responseText !== "success"){
您有此函数用于检查 AJAX 请求是否完成,但您忘记调用它。
在ajax.readyState!==4
时离开函数
当 onreadystatechange 事件触发时,您正在调用此函数,但此事件将触发多次(当请求完成readyState===4
时)
但是这个问题被标记为"jquery",你最好使用jQuery.ajax()
相关文章:
- 在不使用循环的情况下,从一个数据库字符串值向javascript数组添加多个对象
- 如何在不进入无限循环的情况下将网站重定向到Facebook画布URL
- jQuery:如何在没有for循环的情况下将事件处理程序应用于$('#text'+'任意整数
- 如何在不每秒调用太多次的情况下通过Soundcloud解析api进行循环
- JavaScript while循环没有'不能在有条件的情况下工作
- 在没有大量回调函数的情况下在列表元素上循环播放同一动画
- 在 JS 中使 for 循环在没有库的情况下等待
- 在forEach循环中创建promise,并在不嵌套的情况下使用它们
- 如何在不使用for循环的情况下增量增加变量的值
- Javascript-在没有循环的情况下生成多个随机数
- Bxslider预加载程序在没有图像的情况下以无限循环运行
- 在给定偏移量大于数组的情况下,在数组上无缝循环,向前或向后循环
- jQuery:如何在不使用每个循环的情况下显示数组的第一个元素
- 在没有javascript循环的情况下多次执行命令
- 循环中的一个变量 - 如何在我的情况下修复它
- JavaScript/jQuery 脚本在没有循环的情况下循环 3 次
- 在不访问对象键的情况下循环访问对象值
- 有没有办法在不使用循环的情况下更新多个文档以将特定数字添加到一列
- 如何在不使用任何循环的情况下增加元素的宽度
- Firefox/Firebug JavaScript 控制台.log在某些情况下无法在 for 循环中工作