首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过id将变量设置为另一个变量

通过id将变量设置为另一个变量
EN

Stack Overflow用户
提问于 2012-09-15 06:36:04
回答 3查看 114关注 0票数 0

我正在使用谷歌地图,我正在尝试创建一个侧栏,支持不同的KML覆盖。我将KML层放入变量中,使用与按下按钮激活它们的ID标签相同的变量,希望调用该ID作为变量,然后可以在setMap函数中使用它。

我不确定这是否真的可行

在这个脚本中,我尝试这样做,所以您可以使用ID标记‘kml1’按element,设置testvar='kml1',然后能够将testvar.setMap(the_Map)放在kml1.setMap(the_Map)的位置,作为testvar==kml1

jQuery

代码语言:javascript
运行
复制
kml1 = new google.maps.KmlLayer("http://www.domain.com/map_overlay1.txt", {
            preserveViewport: true,
        });
        kml2 = new google.maps.KmlLayer("http://www.odomain.com/map_overlay2.txt", {
            preserveViewport: true,
        });

    $(document).ready(function() {
        $('.kml_item').toggle(
                function() {
                    for (i=0; i<50; i++) {
                        testvar = this.id
                        if (testvar == 'kml' + i) {
                            testvar.setMap(the_Map);
                            break;
                        }
                    }
                },
                function() {
                    for (i=0; i<50; i++) {
                        testvar = this.id
                        if (testvar == 'kml' + i) {
                            testvar.setMap(null);
                            break;
                        }
                    }
            );
    })

关联的HTML

代码语言:javascript
运行
复制
<div id="kml1" class="kml_item">KML 1</div>
            <div id="kml2" class="kml_item">KML 2</div>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-15 08:02:48

我不确定在这个网站上回答你自己的问题是否真的是合法的,但我想出了另一种方法,尽管我确实相信我最初使用ID标签作为变量的问题是无法解决的。我没有将每个KML层放在单独的变量中,而是将它们放在一个数组中。为可单击的div指定title标记的编号,允许函数递增计数,直到数组项与div的标题号匹配,并将数组中的项放到map上。

KML数组

代码语言:javascript
运行
复制
kml_arr = [
            new google.maps.KmlLayer("http://www.domain.com/map_overlay1.txt", {
            preserveViewport: true,
        }),
            new google.maps.KmlLayer("http://www.domain.com/map_overlay2.txt", {
            preserveViewport: true,
        })
        ]

jQuery

代码语言:javascript
运行
复制
$(document).ready(function() {
        $('.kml_item').toggle(
                function() {
                    $(this).animate({backgroundColor: '#ffffff'}, 200);
                    for (i=0; i<50; i++) {
                        if (i == this.title) {
                            kml_arr[i].setMap(the_Map);
                            break;
                        }
                    }
                },
                function() {
                    $(this).animate({backgroundColor: '#d0d0d0'}, 200);
                    for (i=0; i<50; i++) {
                        if (i == this.title) {
                            kml_arr[i].setMap(null);
                            break;
                        }
                    }
                }
            );
    })

关联的HTML

代码语言:javascript
运行
复制
                <div title="0" id="kml1" class="kml_item">KML 1</div>
            <div title="1" id="kml2" class="kml_item">KML 2</div>
票数 0
EN

Stack Overflow用户

发布于 2012-09-15 06:42:05

尝试.click()函数

代码语言:javascript
运行
复制
   $('#kml1').click(function(){
      new google.maps.KmlLayer("http://www.domain.com/map_overlay1.txt", {
            preserveViewport: true,
        });
    });
票数 0
EN

Stack Overflow用户

发布于 2012-09-15 06:43:49

我认为你可以通过一些调整得到你想要的东西。

代码语言:javascript
运行
复制
// These kml objects will be attached to the global window object at
// window.kml1
// or
// window['kml1']
var kml1 = new google.maps.KmlLayer("http://www.domain.com/map_overlay1.txt", {
        preserveViewport: true,
    });
var kml2 = new google.maps.KmlLayer("http://www.odomain.com/map_overlay2.txt", {
        preserveViewport: true,
    });

$(document).ready(function() {
    $('.kml_item').click(function() {
        // Access the various kml objects and set the_Map
        var kml = window[this.id]
        if(kml.getMap()) {
            kml.setMap(null);
        }
        else {
            kml.setMap(the_Map);
        }
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12432843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档