Javascript - 检查变量

时间:2015-05-08 08:04:33

标签: javascript jquery

这是一个非常令人注意的问题,我在没有找到任何东西的情况下搜索的答案太长了。 我不习惯使用javascript而是习惯其他编程语言,如果你想要不断检查某些东西,它是如何工作的?

这是我的代码:

var test = 0;

$( ".test_div" ).click(function() {
    test = 1;
});

现在如果我想检查变量是否为1,我该怎么办? 我试过这个,但它不起作用:

if (test == 1) { }

谢谢!

4 个答案:

答案 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)

我会带你回去一下,你真的需要经常检查吗?即使有已知的特定事件,它的价值可以改变吗?我认为这取决于你的需求。

首先,我会考虑Pub/SubObserver模式,它们肯定比每X毫秒运行一个特殊间隔更有效和可靠。