禁用功能,如果父div具有多个子div

时间:2019-05-21 14:20:54

标签: javascript

我有一个javascript,它每5秒检查一次父div是否有1个子div或超过1个子div

HTML:

var x = Customer(123, 00001, some value, 2, some value)

如果<div id="program-days"> <div class="row">program 1</div> <div class="row">program 2</div> <div class="row">program 3</div> </div> 只有1个子div,如何禁用以下功能:

#program-days

我可以使用类似这样的脚本吗? :

$(document).ready(
function () {
checkProgramData();
checkProgram = setInterval(checkProgramData, checkProgramInterval);
});

2 个答案:

答案 0 :(得分:0)

只需给您的间隔一个变量名:

var programDaysInterval = setInterval(...);

在函数的其他部分,您可以通过其名称停止间隔:

clearInterval(programDaysInterval);

完整示例:

$(function() {
    function checkProgram() {
        if($("#program-days").find('.row').length > 1) {
            console.log('stop');
            clearInterval(checkProgramInterval);
        } else {
            console.log('just keep going');
        }
    }

    var checkProgramInterval = setInterval(checkProgram,500);
});

答案 1 :(得分:0)

您不需要Jquery。这是一个可能的解决方案:

第一个是基本的if else语句,另一个在间隔少于1行时停止间隔。这是您要找的答案吗?

//Basic solution
setInterval(() => {
	if(document.querySelectorAll('#program-days > .row').length > 1){
  
  }else{
  	
  }
},1000)

// Stopping interval / function if not true
let interval = setInterval(() => {
	if(document.querySelectorAll('#program-days > .row').length > 1){
  	
  }else{
  	interval.clearInterval()
  }
},1000)
<div id="program-days">
    <div class="row">program 1</div>
    <div class="row">program 2</div>
    <div class="row">program 3</div>
</div>