首页 > 解决方案 > 有没有办法避免这种无限循环

问题描述

我陷入了无限循环,我无法解决这个问题。我希望有人帮助我。

所以我有两列,一列称为“正常价格”,第二列称为“乘数”

我需要检查正常价格是否发生变化,乘数也必须改变,反之亦然,如果乘数发生变化,则正常价格必须改变。

这是我为这个问题找到的最接近的解决方案(它有效,但它死了):

jQuery('.column-yith_wcbep_cf_multiplicador').bind('DOMSubtreeModified', function(){
  var tabela1 = document.getElementsByClassName("yith_wcbep_products")[0].rows
  var arrayMultiplicador1 = []

  
  for (k = 1;  k < tabela1.length -1; k ++){
        var multiplicadorNovo1 = tabela1[k].childNodes[10].innerHTML
        var pvaNovo1 = tabela1[k].childNodes[11].innerHTML
        var regularPriceNovo1 = tabela1[k].childNodes[5].innerHTML
        var numeroPVA1 = Number(pvaNovo1)
        var numeroRegularPrice1 = Number(regularPriceNovo1)
        var numeroMultiplicador1 = Number(multiplicadorNovo1)
        var novoResultado1 = numeroRegularPrice1 / numeroPVA1
        // tabela1[k].childNodes[10].innerHTML = novoResultado;
        var multiplicadorAll1 = tabela1[k].childNodes[10].innerHTML
        arrayMultiplicador1.push(multiplicadorAll1)
        var resultadroRegPrice1 = numeroMultiplicador1 * numeroPVA1
        tabela1[k].childNodes[5].innerHTML = resultadroRegPrice1.toFixed(2)

        
        
    }
});

jQuery('.regular_price').bind('DOMSubtreeModified', function(){
var tabela = document.getElementsByClassName("yith_wcbep_products")[0].rows

    var arrayMultiplicador = []
    var ids = []
    for (i = 1;  i < tabela.length -1; i ++){
        var multiplicadorNovo = tabela[i].childNodes[10].innerHTML
        var pvaNovo = tabela[i].childNodes[11].innerHTML
        var regularPriceNovo = tabela[i].childNodes[5].innerHTML
        var numeroPVA = Number(pvaNovo)
        var numeroRegularPrice = Number(regularPriceNovo)
        var numeroMultiplicador = Number(multiplicadorNovo)
        var novoResultado = numeroRegularPrice / numeroPVA
        tabela[i].childNodes[10].innerHTML = novoResultado;
        var multiplicadorAll = tabela[i].childNodes[10].innerHTML
        arrayMultiplicador.push(multiplicadorAll)
        // var resultadroRegPrice = numeroMultiplicador * numeroPVA
            // tabela[i].childNodes[5].innerHTML = resultadroRegPrice.toFixed(2)

        
        
    }
}); 

发生的事情是当我更改其中一列时,另一列也发生了变化,它变成了一个无限循环,控制台充满了错误并且网站崩溃 - https://prnt.sc/uq6wm9

我能做些什么来防止这种情况发生?

谢谢。

标签: javascriptjqueryloops

解决方案


推荐阅读