Javascript 如何使用setInterval()作为事件侦听器

Javascript 如何使用setInterval()作为事件侦听器,javascript,jquery,Javascript,Jquery,我从未使用过setInterval,我需要一些建议,因为我无法理解这一点。我想创建某种类型的事件侦听器 例如,我想检查选择菜单中选项的长度,但是第三方脚本通过Ajax请求填充选择菜单的内容。不幸的是,我不允许接触第三方脚本,所以我考虑使用一个函数来等待和侦听添加的内容,然后执行它的任务 假设我的网页上有以下内容: <select size="7" id="cat"> </select> 现在我不太明白这是怎么回事。ifcheckLen==True条件只执行一次,我需要每

我从未使用过setInterval,我需要一些建议,因为我无法理解这一点。我想创建某种类型的事件侦听器

例如,我想检查选择菜单中选项的长度,但是第三方脚本通过Ajax请求填充选择菜单的内容。不幸的是,我不允许接触第三方脚本,所以我考虑使用一个函数来等待和侦听添加的内容,然后执行它的任务

假设我的网页上有以下内容:

<select size="7" id="cat"> </select>
现在我不太明白这是怎么回事。ifcheckLen==True条件只执行一次,我需要每隔一秒执行一次,直到选择菜单被填充。

ourInterval不是setInterval执行的函数的返回值。它是可用于取消间隔的值

其次,与其每隔一段时间进行检查,为什么不在输入上注册一个侦听器,并在它发生变化时做些什么呢

差不多

ourInterval不是setInterval执行的函数的返回值。它是可用于取消间隔的值

其次,与其每隔一段时间进行检查,为什么不在输入上注册一个侦听器,并在它发生变化时做些什么呢

差不多


为了简单起见,我使用了不同的元素,但想法仍然相同:

var listen = setInterval(function () {
    if ($('input').val().length > 0) {
        console.log('has changed, should call callback');
        clearInterval(listen);
    }
}, 1000);​
对于您的情况,这应该类似于未经测试:

function takeDefault(){
  var ourInterval = setInterval(function () {
    if ($('#cat option').size() > 0) {
      alert("Okay I will do something now");
      clearInterval(ourInterval);
    }
  }, 1000);

  // Now I will perform some other tasks
}

为了简单起见,我使用了不同的元素,但想法仍然相同:

var listen = setInterval(function () {
    if ($('input').val().length > 0) {
        console.log('has changed, should call callback');
        clearInterval(listen);
    }
}, 1000);​
对于您的情况,这应该类似于未经测试:

function takeDefault(){
  var ourInterval = setInterval(function () {
    if ($('#cat option').size() > 0) {
      alert("Okay I will do something now");
      clearInterval(ourInterval);
    }
  }, 1000);

  // Now I will perform some other tasks
}

setInterval不需要使用字符串,只要有setIntervalchecklen,1000;setInterval不需要使用字符串,只要有setIntervalchecklen,1000;对不起,我的代码有误,我现在已经修改了。。。Sorry请注意,更改事件发生在元素值更改时,而不是innerHTML/内容更改时。很抱歉,这是我代码中的一个输入错误,我现在已对其进行了修改。。。Sorry请注意,更改事件发生在元素值更改时,而不是innerHTML/内容更改时。