如何设置像事件处理程序一样的计时器并在条件下停止计时器

时间:2013-08-18 13:12:03

标签: jquery

我有一个javascript代码,可以在页面上生成一些元素。但由于这些新生成的元素的数据来自外部源,因此加载这些元素可能需要一段时间。 我想要做的是在这些元素被加载之后我想做一些事情。所以我决定我应该检查元素是否每秒都出现然后执行我的其他代码。

这就是我想要做的事情:

//start a timer like event handler which occurs every second
//in every second{
    if ($(".elementthatmustappear").is(":visible"))
    {
        //stop the timer
        //execute other codes
    }
    else
    {
        //don't stop the timer.continue checking
    }
}

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

The thing I want to do is that I want to do some things AFTER these elements are loaded.

在这种情况下,你应该将回调传递给加载内容的函数,该函数应在加载后执行。

如果您确定要遵循已绘制的逻辑,则应该可以使用:

var timer = setInterval(function() {
    if ($(".elementthatmustappear").is(":visible")) {
        clearInterval(timer);
        doSomethingElse()
    }
}, 1000);