鼠标悬停事件未触发多边形

时间:2011-12-21 22:21:11

标签: javascript jquery google-maps

单击按钮时,会向服务器端发出AJAX请求,返回多个多边形路径。然后将这些多边形绘制到地图上。

问题:我为mouseovermouseout事件添加了事件处理程序。但是,它们似乎并没有被解雇。处理程序包含console.log,它不会在鼠标悬停时执行。可能是什么导致了这个?

JS代码

$("#button").click(function() {
    $.getJSON(base_url + 'main/get',
                function(json) {

                    for( var i = 0; i < json.length; i++) {

                        decoded_path = google.maps.geometry.encoding.decodePath(json[i].encoded_path); 

                        var polyOptions = {
                                    strokeColor: "#4794b8", 
                                    strokeOpacity: 0.7, 
                                    strokeWeight: 1.5,
                                    fillColor: "#000",
                                    fillOpacity: 0.1,
                                    path: decoded_path, 
                                    clickable: false,
                                    map: map
                            }
                        var polygon = new google.maps.Polygon(polyOptions);
                        array_polyline.push(polygon);

                        // Add Mouseover/Mouseout Listeners
                        google.maps.event.addListener(polygon, "mouseover", function(){ console.log('Mouseover'); this.setOptions({fillOpacity: 0}); });
                        google.maps.event.addListener(polygon, "mouseout", function(){ this.setOptions({fillOpacity: 0.1}); });

                    }

        });
});

1 个答案:

答案 0 :(得分:2)

您需要删除clickable: false或将其设为clickable: true(默认设置)

您不必绑定到所有事件(即单击),但clickable: false禁用所有鼠标事件......