问题描述
我有一个循环,我从数组元素中提取一些数据,然后为每个迭代添加一个事件侦听器。但我需要将这些值传递给每个关联的侦听器,但最终只有侦听器中的最后一个数组项值。我试图从,但解决方案似乎不适合我的情况,我很困惑。这是我的代码:
pre $ for(var i = 0; i< route.length; i ++)
{
var input = route [i];
var sdata = input.split(@,19)
//一些代码
google.maps.event.addListener(marker,'click',showiwindow);
}
function showiwindow(event)
{
var input = event.latLng;
//一些代码
...
document.getElementById('<%= lbl1.ClientID%>')。innerHTML = sdata [1];
document.getElementById('<%= lbl2.ClientID%>')。innerHTML = sdata [2];
document.getElementById('<%= lbl3.ClientID%>')。innerHTML = sdata [3];
document.getElementById('<%= lbl4.ClientID%>')。innerHTML = sdata [4];
......
}
当我点击一个标记我只得到最后一次迭代的值。回到那个链接中的解决方案,我该如何传递数组以及 i 的迭代值。请参阅我的意思链接。
这样的事情如何?
for(var i = 0; i {
var input = route [i];
var sdata = input.split(@,19)
//一些代码
showiwindow(sdata);
}
function showiwindow(sdata)
{
google.maps.event.addListener(marker,'click',function(event){
var input = event.latLng;
//一些代码
...
document.getElementById('<%= lbl1.ClientID%>')。innerHTML = sdata [1] ;
document.getElementById('<%= lbl2.ClientID%>')。innerHTML = sdata [2];
document.getElementById('<%= lbl3.ClientID%>' ).innerHTML = sdata [3];
document.getElementById('<%= lbl4.ClientID%>')。innerHTML = sdata [4];
......
});
}
I have a loop in which I extract some data from an array element, then add an event listener for each iteration. But I need to pass these values to each associated listener but I end up having only the last array item values in the listener. I have tried to understand from "this" but the solution seems not suitable in my case and I am confused. This is the code that I have:
for(var i=0;i<route.length;i++) { var input= route[i]; var sdata= input.split("@",19) //Some code google.maps.event.addListener(marker,'click',showiwindow); } function showiwindow(event) { var input= event.latLng; //some code ... document.getElementById('<%= lbl1.ClientID %>').innerHTML = sdata[1]; document.getElementById('<%= lbl2.ClientID %>').innerHTML = sdata[2]; document.getElementById('<%= lbl3.ClientID %>').innerHTML = sdata[3]; document.getElementById('<%= lbl4.ClientID %>').innerHTML = sdata[4]; ...... }
When I click on a marker I only get the values of the last iteration. Coming back to the solution in that link, how do I pass the array along with the iteration value that is i. Kindly refer to the link of what I meant.
How about something like this?
for(var i=0;i<route.length;i++) { var input= route[i]; var sdata= input.split("@",19) //Some code showiwindow(sdata); } function showiwindow(sdata) { google.maps.event.addListener(marker,'click', function(event) { var input= event.latLng; //some code ... document.getElementById('<%= lbl1.ClientID %>').innerHTML = sdata[1]; document.getElementById('<%= lbl2.ClientID %>').innerHTML = sdata[2]; document.getElementById('<%= lbl3.ClientID %>').innerHTML = sdata[3]; document.getElementById('<%= lbl4.ClientID %>').innerHTML = sdata[4]; ...... }); }
这篇关于将循环中的值传递给事件监听器-Javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!