Javascript 使用闭包在带有变量的jQuery选择器上迭代
[第一次在stackoverflow上。]我试图动态地将html按钮添加到我的页面中,然后使用jQuery的click为它们提供一个javascript函数,以便在它们被单击时运行。我希望数组中的每个元素都有一个按钮,所以我使用了for循环。我的代码如下所示(简化) (当然,这一切都发生在更大的上下文中——特别是Google Maps Places API调用的回调。) 首先,我对问题的理解是否正确?第二,什么可行?我是否应该采取完全不同的方法,比如使用.each() (稍后,我希望单击时显示place[I]的属性,我认为这需要另一个回调 我的最终黑客代码如下所示:Javascript 使用闭包在带有变量的jQuery选择器上迭代,javascript,jquery,jquery-selectors,closures,Javascript,Jquery,Jquery Selectors,Closures,[第一次在stackoverflow上。]我试图动态地将html按钮添加到我的页面中,然后使用jQuery的click为它们提供一个javascript函数,以便在它们被单击时运行。我希望数组中的每个元素都有一个按钮,所以我使用了for循环。我的代码如下所示(简化) (当然,这一切都发生在更大的上下文中——特别是Google Maps Places API调用的回调。) 首先,我对问题的理解是否正确?第二,什么可行?我是否应该采取完全不同的方法,比如使用.each() (稍后,我希望单击时显示p
$("#" + place[0].place_id).click(function(){google.maps.event.trigger(placeMarkers[0], "click"); repeated 20 times
for (var i = 0; i < results.length; i++) {
(function(index) {
$("#" + place[index].place_id).click(function() {
//Do something with place[index] here
});
})(i);
}
为此,只需在for循环内创建一个自执行函数,如下所示:
$("#" + place[0].place_id).click(function(){google.maps.event.trigger(placeMarkers[0], "click"); repeated 20 times
for (var i = 0; i < results.length; i++) {
(function(index) {
$("#" + place[index].place_id).click(function() {
//Do something with place[index] here
});
})(i);
}
for(var i=0;i
它在任何情况下都能正常工作