我正试图用return
语法停止:
<script>
$(document).ready(function() {
setInterval(function() {
var url = "../view/anychange.php";
$.getJSON(url, function(data) {
f(data.exists == 0){
alert("0");
} else {
alert("1");
return;
}
});
}, 5000);
});
</script>
如果我的表中存在数据,该函数每5秒验证一次。
我需要在data.exists == 1
(alert("1")
)时停止此功能。
答案 0 :(得分:4)
<script>
$(document).ready(function() {
var id;
id = setInterval(function() {
var idRefCopy = id; // You need this otherwise you'll get a reference exception
var url = "../view/anychange.php";
$.getJSON(url, function(data) {
if(data.exists == 0){
alert("0");
} else {
alert("1");
clearInterval(idRefCopy);
return;
}
});
}, 5000);
});
</script>
答案 1 :(得分:2)
您必须在变量内定义间隔,然后将其清除。试试这个:
<script>
$(document).ready(function() {
var interval = setInterval(function() {
var url = "../view/anychange.php";
$.getJSON(url, function(data) {
if(data.exists == 0){
alert("0");
} else {
clearInterval(interval);
}
});
}, 5000);
});
</script>
你的代码中有一个拼写错误(我在这里修了它,它是一个“f”而不是“if”;)希望这有帮助。
答案 2 :(得分:2)
您需要清除间隔,这会阻止您的功能再次被触发。有关间隔参考,请参阅this。
这应该是你的代码:
$(document).ready(function() {
var i = setInterval(function() {
var url = "../view/anychange.php";
$.getJSON(url, function(data) {
f(data.exists == 0) {
alert("0");
} else {
alert("1");
clearInterval(i);
}
});
}, 5000);
});
答案 3 :(得分:1)
clearInterval怎么样?
var myVar = setInterval(function(){myTimer()},1000);
function myTimer()
{
var d = new Date();
var t = d.toLocaleTimeString();
document.getElementById("demo").innerHTML=t;
}
function myStopFunction()
{
clearInterval(myVar);
}
来源:W3Schools
答案 4 :(得分:-1)
我强烈建议你不要打你的服务器,除非你知道你的ajax已经完成
此示例将检查,但仅在服务器返回后
var counter = 0;
function checkData() {
var url = "../view/anychange.php";
$.getJSON(url, function(data) {
if (data.exists == 0) {
$("#someContainer").html("Not yet on attempt #"+(counter++));
setTimeout(checkData,5000);
} else {
$("#someContainer").html("found on attempt #"+(counter++));
}
});
}
$(function() {
checkData();
});