点击地图外的链接点击打开Goog​​le地图InfoWindow

时间:2016-09-12 12:40:04

标签: javascript google-maps-api-3

这是javascript我用来制作所有标记并设置点击监听器

var infowindow = new google.maps.InfoWindow();
    var markernovi, i;

    for (i = 0; i < lokacije.length; i++) {
        var ll = lokacije[i][2];
        var latlng = ll.split(',');
        markernovi = new google.maps.Marker({
            position: new google.maps.LatLng(parseFloat(latlng[0]), parseFloat(latlng[1])),
            map: mapObject,
            icon: 'img/pins/' + key + '.png',
        });

        google.maps.event.addListener(markernovi, 'click', (function (markernovi, i) {
            return function () {
                infowindow.setContent(lokacije[i][0]);
                infowindow.open(mapObject, markernovi);
            }
        })(markernovi, i));



    markers.push(markernovi);
    }
}


google.maps.event.addDomListener(window, 'load' , initialize);

function myClick(id){
    google.maps.event.trigger(markers[id], 'click');
}

我可以在页面上列出所有位置:

<?php
                foreach($lokacijebuy1 as $sve) {
                    ?>
                    <div class="col-lg-6 col-md-12 col-sm-6">
                        <div class="img_wrapper">
                            <div class="img_container">
                                <a href="#" onclick="myClick(0);" >
                                    <img src="http://evidentiraj.me/gkcard/slikemjesta/<?php echo $sve['photo']; ?>" width="800" height="533" class="img-responsive" alt="">
                                    <div class="short_info">
                                        <h3><?php echo $sve['ime2']; ?></h3>
                                        <em><?php echo $sve['adresa']; ?></em>
                                        <p>
                                            <?php echo $sve['opis2']; ?>
                                        </p>
                                    </div>
                                </a>
                            </div>
                        </div><!-- End img_wrapper -->
                    </div><!-- End col-md-6 -->
                <?php }
            ?>

无论我点击哪一个infowindow我打开是阵列中的第一个。

您可以在此处查看网页:http://evidentiraj.me/gorskikotarcard/locationsbuy.php

我发现我需要更改以显示其他标记的唯一内容是myClick

中的数字
<a href="#" onclick="myClick(1);" >

解答: 我唯一做的就是在我的<a href标签中添加计数器 现在它看起来像这样:

<?php
            $counter = 0;
                foreach($lokacijebuy1 as $sve) {

                    ?>
                    <div class="col-lg-6 col-md-12 col-sm-6">
                        <div class="img_wrapper">
                            <div class="img_container">
                                <a href="#" onclick="myClick(<?php echo $counter; ?>);" >
                                    <img src="http://evidentiraj.me/gkcard/slikemjesta/<?php echo $sve['photo']; ?>" width="800" height="533" class="img-responsive" alt="">
                                    <div class="short_info">
                                        <h3><?php echo $sve['ime2']; ?></h3>
                                        <em><?php echo $sve['adresa']; ?></em>
                                        <p>
                                            <?php echo $sve['opis2']; ?>
                                        </p>
                                    </div>
                                </a>
                            </div>
                        </div><!-- End img_wrapper -->
                    </div><!-- End col-md-6 -->
                <?php
                    $counter++;
                }
            ?>

1 个答案:

答案 0 :(得分:1)

这是因为您使用函数amyClick元素渲染为输入参数设置为0,并且您将此参数用作函数内部的markers数组中的索引,这是仍然是数组中的第一个标记。您需要更改呈现a元素的方式以获得如下结果:

<a href="#" onclick="myClick(0);"></a>
<a href="#" onclick="myClick(1);"></a>
<a href="#" onclick="myClick(2);"></a>