Javascript 多次在循环中使用.trigger
我希望通过选择框中的项目进行循环,查看其中是否有任何项目已经在API中保存了数量,并将所述项目附加到页面中 我的代码使用.trigger('change')来实现这一点,但是它随后退出for循环 如果没有.trigger('change'),for循环本身将完成,但是如果没有.trigger('change'),则不会追加任何项Javascript 多次在循环中使用.trigger,javascript,jquery,Javascript,Jquery,我希望通过选择框中的项目进行循环,查看其中是否有任何项目已经在API中保存了数量,并将所述项目附加到页面中 我的代码使用.trigger('change')来实现这一点,但是它随后退出for循环 如果没有.trigger('change'),for循环本身将完成,但是如果没有.trigger('change'),则不会追加任何项 $(window).on('load', function(e) { if (Basket) { var lineItemArray = [11
$(window).on('load', function(e) {
if (Basket) {
var lineItemArray = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 4];
for (i=0; i < lineItemArray.length; i++) {
if (Basket.LineItems[lineItemArray[i]].Quantity > 0) {
// Append item to page (function elsewhere takes care of this)
$('#select-other-items-section').find('option[value="' + lineItemArray[i] + '"]').attr("selected",true).trigger('change');
}
}
}
});
$(窗口).on('load',函数(e){
如果(篮子){
var lineItemArray=[11,12,13,14,15,16,17,18,19,20,21,22,4];
对于(i=0;i0){
//将项目追加到页面(其他地方的函数负责此操作)
$(“#选择其他项目部分”).find('option[value=“”+lineItemArray[i]+'''''“]).attr(“selected”,true)。trigger('change');
}
}
}
});
有没有人能提出问题的建议?或者甚至不可能在循环中使用.trigger?您可以使用
val()
将过滤后的数组直接传递给多个
。
然后触发
您可以使用val()
将过滤后的数组直接传递给多个
。
然后触发
在这方面:
for (i=0; i < lineItemArray.length; i++)
在这方面:
for (i=0; i < lineItemArray.length; i++)
一个选项没有改变,select不认为最好使用“change”事件以外的其他事件来触发附加项目——为什么不直接调用append函数呢?“change”事件是否会重新加载页面?更新“change”处理程序,使其执行console.log('change');返回代码>(即没有其他内容)并重新运行代码。如果它能工作,那么它就是变更处理程序本身中的某个东西,您在这里没有包括它。您的i
变量是全局变量。将(i=0;
的更改为(var i=0;
)的(或使用i
以外的东西,例如j
或ii
)。如果您的更改事件(或某些其他代码,例如jquery内部代码)也有一个for(i=0..
循环(或影响i
的任何代码)然后它将重置i
,并打破这个循环。选项不会改变,选择按钮我认为您最好使用“更改”以外的其他选项事件来触发追加项目--为什么不直接调用append函数?'change'事件是否重新加载页面?更新'change'处理程序,使其执行console.log('change');return;
(即不执行其他操作)然后重新运行您的代码。如果它起作用,那么它就是更改处理程序本身中的某个东西,您在这里没有包含。您的i
变量是全局变量。将for(i=0;
更改为for(var i=0;
(或者使用i
,例如j
或ii
)更改。如果您的更改事件(或其他一些代码,如jquery内部代码)也有一个for(i=0..
循环(或影响i
的任何代码),然后它将重置i
并中断此循环。
for (var i=0; i < lineItemArray.length; i++)