这是一个非常令人注意的问题,我在没有找到任何东西的情况下搜索的答案太长了。 我不习惯使用javascript而是习惯其他编程语言,如果你想要不断检查某些东西,它是如何工作的?
这是我的代码:
var test = 0;
$( ".test_div" ).click(function() {
test = 1;
});
现在如果我想检查变量是否为1,我该怎么办? 我试过这个,但它不起作用:
if (test == 1) { }
谢谢!
答案 0 :(得分:5)
您正在搜索interval
以下可以帮助您:
var test = 0;
var interval;
function check_test() {
if( test == 1 ){
clearInterval( interval );
console.log( "Test is 1 now!" );
}
}
interval = window.setInterval( check_test, 1000 );
1000
以毫秒为单位,因此1000毫秒= 1秒。
这将每1秒调用check_test()
。
你也可以用同样的方式做window.setTimeout
,但这只会做一次。你可以再次在函数内调用它,如果你想停止它,你就停止调用它。
答案 1 :(得分:1)
如果您使用的是Chrome或Opera,请查看Javascript Object.observe()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe
如果你需要一些不那么尖端的东西,你需要使用一个框架(例如Angular,虽然其他的可用),你可以在其中设置监视变量。
答案 2 :(得分:0)
有几种方法可以检查值是否已更改。
使用setInterval方法:
$group_data = array();
foreach($groupInfo as $value)
{
$group_sql = base_executeSQL("SELECT * FROM base_subgroup WHERE base_name='".$value."'");
while($row = base_fetch_array($group_sql))
if(base_num_rows($group_sql) != 0)
{
$group_data = array_merge($group_data, explode(", ",$row['base_gp_id']));
}
}
$group_data = array_unique($group_data);
$group_query = base_executeSQL("SELECT * FROM base_groups WHERE base_gp_id IN (". implode(',', $group_data) .")");
while($row_group = base_fetch_array($group_query)) {
echo $row_group['base_gp_name'] . "<br>";
}
以上代码将每1秒测试一次条件。
答案 3 :(得分:0)