在for循环中触发onchange事件只运行一次

时间:2016-03-28 14:00:18

标签: javascript jquery loops for-loop

我有一个页面,可以通过关联事件创建下拉对象。

onchange事件在用户运行时适用于所有对象。 我的问题是当我调用" onchange"编程。它只运行一次。这就是我这样做的方式:

for (i = 0; i < me.datasource.DocLines.length; i++) {
    data = me.datasource.DocLines[i];
    x = $('#subproduct_' + data.Code);
    x.val(data.Value);
    x.change();
}

我以编程方式执行此操作是因为我绑定了数据库中的下拉值,我需要重新创建计算以向用户显示计算值。

循环只运行一次。触发onchange事件后,代码执行退出循环,我不知道原因。 我已经检查了me.datasource.DocLines.length,它始终是&gt; 1,这意味着循环应至少运行两次。

有关为何发生这种情况的任何线索?

编辑 更多信息:

这是我将一个函数与下拉控件

相关联的方法
     for (i = 0; i < dbdata.length; i++) {
            if ((dbdata[i].Provider) == "False") { //create dropdownboxes events 
                if ((dbdata[i].Dimension) != "True") {

                    $('#subproduct_' + dbdata[i].Code).change({
                        me: me
                    }, doSomething);
                }
           }
     }
    //....

这&#34; doSomething&#34;只运行一次。我可以通过设置断点来检查它。

1 个答案:

答案 0 :(得分:0)

通过改变&#34; i&#34;迭代到一个新变量,我的问题解决了。还有一个&#34; i&#34;变量用于&#34; doSomething&#34;功能