Jquery 如何等待变量不为null
当我这样写的时候,它仍然警告cLanguage为null。我想等到cLanguage不为null,然后运行下面的代码Jquery 如何等待变量不为null,jquery,Jquery,当我这样写的时候,它仍然警告cLanguage为null。我想等到cLanguage不为null,然后运行下面的代码 $(function () { let check = function() { setTimeout(function () { if (cLANGUAGE == null) check(); }, 500); }; if (cLANGUAGE == null) check(); alert(cLANGUAGE); $(
$(function () {
let check = function() {
setTimeout(function () {
if (cLANGUAGE == null)
check();
}, 500);
};
if (cLANGUAGE == null) check();
alert(cLANGUAGE);
$('#details--action-share').on('click', function () {
Action.details.share.before();
});
});
如何执行此操作?如果
==null
的计算结果为false
,则将依赖于它的所有代码放在else
块中:
$('#details--action-share').on('click', function () {
Action.details.share.before();
});).
您可以像这样使用
true/false
布尔值
let check = function() {
setTimeout(function () {
if (cLANGUAGE === null)
check();
else {
alert(cLANGUGAGE);
}
}, 500);
};
check();
“下面的代码”表示“$”(“#详细信息--操作共享”).on('click',function(){action.details.share.before();});顺便问一下,是否要检查?这可能会有所帮助:您能否澄清:您只想在事件处理程序不为null时添加它?或者您只希望Action.details.share.before()在不为null时运行?或者您希望能够单击“#详细信息操作共享”,然后在不再为null时运行.before()?为什么?超时不是一个时间间隔,它不需要被终止-一旦回调运行,超时完成,它将不再运行。因为它是正确的,但它是一个不整洁的过程。我个人说<代码>如果(Culange==NULL){SETTIMEOUT(检查,500);} { BLAH…< /代码>我乍一看更明显,但是无论你是对的:)@ FrimoMnM链式异步调用(如递归<代码> SETTIMEOUT> <代码> S)不会导致溢出-只有同步递归调用有这个问题。
$(function () {
var Checked = false; // set checked here to false
let check = function() {
setTimeout(function () {
if (cLANGUAGE == null){
check();
}else{
Checked = true; // change it here to true
}
}, 500);
};
if (cLANGUAGE == null) check();
alert(cLANGUAGE);
$('#details--action-share').on('click', function () {
if(Checked === true){ // or just if(checked) to check if its true
Action.details.share.before();
}
});
});