点击事件触发时如何修改places变量内部的属性与坐标值?
可行性结论
你的方案完全可以实现,只要places变量的作用域在点击事件回调的可访问范围内,你当前写的代码结构已经满足该前提。
具体实现代码
你可以直接在事件回调中访问places对象的嵌套属性,直接赋值修改即可,示例如下:
var places = { 'type': 'FeatureCollection', 'features': [ { 'type': 'Feature', 'properties': { 'name': 'Trailer 1', // 修改该值为 Trailer 2 'title': 'Trailer 1', }, 'geometry': { 'type': 'Point', 'coordinates': [lg13, lt13] // 修改该值为 lg1 和 lt1 } } ] }; // 事件监听器 checkbox_1.addEventListener('click', function(e) { // 直接修改对应属性值 places.features[0].properties.name = 'Trailer 2'; places.features[0].properties.title = 'Trailer 2'; places.features[0].geometry.coordinates = [lg1, lt1]; // 如果需要勾选/取消勾选时切换值,可以加判断逻辑,示例: // if(e.target.checked) { // // 勾选时赋值 // places.features[0].properties.name = 'Trailer 2'; // } else { // // 取消勾选时还原 // places.features[0].properties.name = 'Trailer 1'; // } }, false)
补充说明
- 如果你修改的
features数组里有多个元素,把索引0换成对应目标元素的索引即可 - 确保
lg1、lt1这两个变量在回调作用域中可以正常访问,否则会抛出未定义报错
内容的提问来源于stack exchange,提问作者user15966041
相关产品推荐
相关产品推荐

