gpt4 book ai didi

javascript - 在 'click' 点击之前触发

转载 作者:行者123 更新时间:2023-12-01 01:26:06 25 4
gpt4 key购买 nike

当我没有单击 Leaflet 层时,为什么此控制台会打印?当我阅读本文时,当我单击点图层时,函数 onClick 会触发并记录到控制台。但控制台登录页面刷新。 billboardLayer和bannerLayer都是JS对象。

html:

<body>

<div id='map'></div>
<div id='footer'>
<div><img src="\data\images\SC811new2.png" class="footer-img">
<h1>Average Rent in Every US County</h1>
</div>
<p id='imageTest'></p>
</div>

JS:

var js_files = {
billboardLayer: {
source: billboardLocations,
color: '#1f78b4'
},
bannerLayer: {
source: bannerLocations,
color: '#ff2700'
}
};
var geojsonLayers = {};
for (file in js_files) {
//console.log(js_files[file].source)
//console.log(js_files[file].color)
geojsonLayers[file] = L.geoJson(js_files[file].source, {
pointToLayer: function(feature, latlng) {
return L.circleMarker(latlng)//.on('click', onClick);
},
style: function (feature) {
return {
fillColor: js_files[file].color,
weight: 0,
fillOpacity: 0.75,
radius: 10
}
},
onEachFeature: function(feature, layer) {
var images = layer.feature.properties.imageFile;
//console.log(images);
layer.on('click', onClick(images));
}
}).addTo(map);
}
function onClick(images) {
console.log(images);
//var x = document.getElementById('imageTest');
//x.innerHTML = '<img src="data/images/LCWASD -Lancaster 2.jpg"/>';
//console.log(x)
//<img src="\data\images\LCWASD -Lancaster.jpg" id="imageTest">
//"<img src='something' onmouseover='change(\"ex1\")' />"
};
</script>

</body>

最佳答案

通过调用onClick(images),您正在调用该函数。您只需要传递一个引用即可。例如。 onClick.bind(this, images) 所以它应该是 layer.on('click', onClick.bind(this, images));

由于它只是您要传递的引用,因此在执行单击处理程序的回调(即单击时)之前,它不会被调用

关于javascript - 在 'click' 点击之前触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53769733/

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