Javascript 单击标记时更改标记图标(在单击事件上),并在单击其他标记时将其返回到正常图标

Javascript 单击标记时更改标记图标(在单击事件上),并在单击其他标记时将其返回到正常图标,javascript,Javascript,如何在单击标记(在单击事件上)时更改标记图标,并在单击其他标记时将其返回到正常图标 这是我的密码。在这段代码中,我为ATM和商店位置创建了两个图标 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /

如何在单击标记(在单击事件上)时更改标记图标,并在单击其他标记时将其返回到正常图标

这是我的密码。在这段代码中,我为ATM和商店位置创建了两个图标

     <!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <title>OpenStreetMap with Google Maps v3 API</title>
        <style type="text/css">
            html, body, #map {
            position:absolute;
            left:100px;
                height: 400px;
                margin: 0;
                padding: 0;
                width:400px;
            }
        </style>
    </head>
    <body>

        <div id="map"></div>
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
        <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
        <script type="text/javascript">

        var map;                    // Variable for Map
        var mapOption;              // Variable for Options for showing Map


        var cromaStorePos = new Array(23);      // Array of coordinates of Croma Store.
        var cromaStoreCat = new Array(3);                 
        var cromaMarker = new Array(23);        // Array of Markers for Croma Store.
        // List of Croma stores. Hard coded. These informations can be recieved from webservices.

        cromaStoreAdd[0] = "Khanna Building, AA-5, 2nd Avenue, \nAnnanagar, Chennai-6000040.\nPhone: 044-6458 9703/04";
        cromaStorePos[0] = new google.maps.LatLng(13.072121,80.261307);          
        cromaStoreCat[0] = "ATM";       
        cromaStoreAdd[1] = "Ground Floor, KENCES Towers, No.1,\nRamakrishnan Street,\nNorth Usman Rd., Chennai-600017. \nPhone: +91 044 - 64629816";
        cromaStorePos[1] = new google.maps.LatLng(13.05473,80.235901);
        cromaStoreCat[1] = "store";
        cromaStoreAdd[2] = "Tarapore Towers, 826 Ground Floor, \nAnna Salai, Chennai-600002. \nPhone: +91 044-6458 9715 / 16";
        cromaStorePos[2] = new google.maps.LatLng(13.094861, 80.215645);
        cromaStoreCat[2] = "ATM";
            var element = document.getElementById("map");
            var myLatlng = new google.maps.LatLng(13.072121,80.261307);
            /*
            Build list of map types.
            You can also use var mapTypeIds = ["roadmap", "satellite", "hybrid", "terrain", "OSM"]
            but static lists sucks when google updates the default list of map types.
            */



            var map = new google.maps.Map(element, {
                center: myLatlng,
                zoom: 12,
                disableDefaultUI: true,
                panControl: false,
                zoomControl: false,
                scaleControl: false,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                streetViewControl: false
            });

            var cromaIcon = 'img/location_icon_atm_blue_blue.png'; 
            var cromaIcon1 = 'img/location_icon_bank_blue_blue.png';
            var cromaIcon2='img/pin_bank_Selected_blue.png';
            var cromaIcon3='img/pin_atm_selected_blue.png';


            // For loop for navigating through the croma stores coordinates and addresses.
            for (i=0; i<3; i++)
            {   
                if(cromaStoreCat[i]=="ATM")
                {
                    cromaMarker[i] = new google.maps.Marker({

                    position: cromaStorePos[i],
                    map: map,
                    title: cromaStoreAdd[i],
                    icon: cromaIcon,

                }); 


                onclickMarker(cromaStoreCat[i],cromaMarker);

                }       

                if(cromaStoreCat[i]=="store")
                {
                    cromaMarker[i] = new google.maps.Marker({
                    position: cromaStorePos[i],
                    map: map,
                    title: cromaStoreAdd[i],
                    icon: cromaIcon1
                    });

                onclickMarker(cromaStoreCat[i],cromaMarker);

                } 


            }


            function onclickMarker(category,marker){


            google.maps.event.addListener(cromaMarker[i],"click",function(){

                switch(category)
                {
                case 'ATM':

                    this.setIcon(cromaIcon3);





                    break;
                case 'store':
                    this.setIcon(cromaIcon2);


                    break;

                }


            });







            }





            //---------------- End of Code for getting address of a particular coordinates. <position> here. ------------------//


            //---------------- Code for handling the error -------------------//
            function showError(err)
            {
                if (err.code == 0)
                {
                    divMap.innerHTML = "Unknown error..";
                }
                else if (err.code == 1)
                {
                    divMap.innerHTML = "User do not want to share its location.";
                }
                else if (err.code == 2)
                {
                    divMap.innerHTML = "Sorry, But your position is not available.";
                }
                else if (err.code == 3)
                {
                    divMap.innerHTML = "Sorry, But your request has timed out.";
                }
            }
      </script> 
    </body>
</html>

Can anyone help me in this regard...

Thanks in advance.....

OpenStreetMap与谷歌地图v3API
html,body,#map{
位置:绝对位置;
左:100px;
高度:400px;
保证金:0;
填充:0;
宽度:400px;
}
变量映射;//映射变量
var mapOption;//用于显示地图的选项的变量
var cromaStorePos=新数组(23);//Croma存储的坐标数组。
var cromaStoreCat=新阵列(3);
var cromaMarker=新数组(23);//Croma商店的标记数组。
//克罗玛商店的名单。硬编码。这些信息可以从Web服务接收。
cromaStoreAdd[0]=“钦奈纳纳加尔第二大道AA-5号卡纳大厦,邮编6000040。\n电话:044-6458 9703/04”;
cromaStorePos[0]=新的google.maps.LatLng(13.072121,80.261307);
cromaStoreCat[0]=“ATM”;
cromaStoreAdd[1]=“钦奈乌斯曼北路拉姆克里希南街1号肯斯大厦一楼,邮编600017。\n电话:+91 044-64629816”;
cromaStorePos[1]=新的google.maps.LatLng(13.05473,80.235901);
cromaStoreCat[1]=“商店”;
cromaStoreAdd[2]=“塔拉波尔大厦,金奈南纳撒莱826地下,邮编:600002。\n电话:+91 044-6458 9715/16”;
cromaStorePos[2]=新的google.maps.LatLng(13.094861,80.215645);
cromaStoreCat[2]=“ATM”;
var元素=document.getElementById(“映射”);
var mylatng=new google.maps.LatLng(13.072121,80.261307);
/*
生成映射类型的列表。
您还可以使用var-mapTypeIds=[“路线图”、“卫星”、“混合”、“地形”、“OSM”]
但是,当谷歌更新默认地图类型列表时,静态列表很糟糕。
*/
var map=new google.maps.map(元素{
中心:myLatlng,
缩放:12,
disableDefaultUI:true,
泛控制:错误,
动物控制:错误,
scaleControl:false,
mapTypeId:google.maps.mapTypeId.ROADMAP,
街景控制:错误
});
var cromaIcon='img/location_icon_atm_blue_blue.png';
var cromaIcon1='img/location_icon_bank_blue_blue.png';
var cromaIcon2='img/pin_bank_Selected_blue.png';
var cromaIcon3='img/pin_atm_selected_blue.png';
//用于在croma中导航的For循环存储坐标和地址。

对于(i=0;i我不知道如何标记和取消标记它们。 为什么不直接循环并取消所有标记,然后只标记一个已单击的

尝试像这样使用jquery

或者像这样的简单循环