条件为真时运行功能但每次需要重新测试条件?

时间:2015-03-23 17:21:26

标签: jquery

我在列表中有很多结果。 this.label指定每行应该有多少结果。

有时候行中的结果数量错误。我可以用这段代码找到这个:

var noResults = $(".results").length;

if (this.label == "3") {
  var ratio = (noResults / 3);
  if (ratio % 1 !== 0) {
    console.log('Wrong number of results');
  }
}
if (this.label == "4") {
  var ratio = (noResults / 4);
  if (ratio % 1 !== 0) {
    console.log('Wrong number of results');
  }
}

我有一个名为addResult的函数,它将添加另一个项目。当错误的结果数量连续时,我想继续调用此函数并添加结果直到该行已满。如何调用addResult而不是我的警报,并再次检查行是否已满,如果不是,则添加另一个结果(依此类推)?

2 个答案:

答案 0 :(得分:0)

将您的if更改为while。只要确保比率在某些时候是正确的!

function getratio(divby) {
  return ($(".results").length / divby);
}

if (this.label == "3") {
  while (getratio(3) % 1 !== 0) {
    addResult();
  }
}

if (this.label == "4") {
  while (getratio(4) % 1 !== 0) {
    addResult();
  }
}

答案 1 :(得分:0)

您可以在其他功能中调用每个功能:

function checkLength(){
var noResults = $(".results").length;

if (this.label == "3") {
  var ratio = (noResults / 3);
  if (ratio % 1 !== 0) {
    console.log('Wrong number of results');
    addResult();
  }
}
if (this.label == "4") {
  var ratio = (noResults / 4);
  if (ratio % 1 !== 0) {
    console.log('Wrong number of results');
    addResult();
  }
}
}

function addResult(){
//Some codes here;
.
.
checkLength() // to check again
}