gpt4 book ai didi

javascript - 将事件监听器添加到 JavaScript 对象

转载 作者:行者123 更新时间:2023-12-03 07:33:39 25 4
gpt4 key购买 nike

我正在从数据库中获取 JavaScript 对象数组。我正在循环该数组并创建要在屏幕上显示的对象。我尝试对每个对象使用 .addEventListener() 但我刚刚意识到 addEventListener() 仅适用于 DOM 对象。

如何为每个 JavaScript 对象添加事件监听器?

这是我的代码:

    var objects = JSON.parse(data.responseText);
var i;
var objectLn = objects.length;

for (i = 0; i < objectLn; i++) {

//Puts each object into a variable
var eachObject = objects[i];

//Establishes pin position
var pinPos = {
lat: parseFloat(eachObject.lat),
lng: parseFloat(eachObject.lng)
};

//Creates new icon for pin
var icon = {
url: "path/to/img",
scaledSize: new google.maps.Size(60, 60),
origin: null,
anchor: null
};

//Creates a new pin from pulled information
var pin = new google.maps.Marker({
position: pinPos,
map: map,
icon: icon
});

//Alerts each object on click
pin.addListener('click', function() {
alert(JSON.stringify(eachObject));
map.panTo(pinPos);
map.setCenter(pinPos);
});
}

addListener 正在为每个放置的引脚添加一个“点击”监听器,所以这很好。问题是它应该提醒每个对象,但它只提醒我点击的每个引脚上从数据库检索的最后一个对象。

最佳答案

尝试像这样做你的loopage..

for (i = 0; i < objectLn; i++) {
(function(eachObject){
// copy the loop contents here. eachObject is already defined.
})(objects[i]);
}

关于javascript - 将事件监听器添加到 JavaScript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35708661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com