Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用闭包在带有变量的jQuery选择器上迭代_Javascript_Jquery_Jquery Selectors_Closures - Fatal编程技术网

Javascript 使用闭包在带有变量的jQuery选择器上迭代

Javascript 使用闭包在带有变量的jQuery选择器上迭代,javascript,jquery,jquery-selectors,closures,Javascript,Jquery,Jquery Selectors,Closures,[第一次在stackoverflow上。]我试图动态地将html按钮添加到我的页面中,然后使用jQuery的click为它们提供一个javascript函数,以便在它们被单击时运行。我希望数组中的每个元素都有一个按钮,所以我使用了for循环。我的代码如下所示(简化) (当然,这一切都发生在更大的上下文中——特别是Google Maps Places API调用的回调。) 首先,我对问题的理解是否正确?第二,什么可行?我是否应该采取完全不同的方法,比如使用.each() (稍后,我希望单击时显示p

[第一次在stackoverflow上。]我试图动态地将html按钮添加到我的页面中,然后使用jQuery的click为它们提供一个javascript函数,以便在它们被单击时运行。我希望数组中的每个元素都有一个按钮,所以我使用了for循环。我的代码如下所示(简化)

(当然,这一切都发生在更大的上下文中——特别是Google Maps Places API调用的回调。)

首先,我对问题的理解是否正确?第二,什么可行?我是否应该采取完全不同的方法,比如使用.each()

(稍后,我希望单击时显示place[I]的属性,我认为这需要另一个回调 我的最终黑客代码如下所示:

$("#" + 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
它在任何情况下都能正常工作