2011-07-23 18 views
6

tôi đã phân lớp đối tượng lớp phủ của tôi dưới sự hướng dẫn của google tài liệu, và onAdd() chức năng của tôi được liệt kê dưới đây:Làm thế nào tôi có thể ràng buộc vào sự kiện để che phủ tuỳ chỉnh với bản đồ của Google v3 cả trong IE và Firefox

MyOverlay.onAdd() { 
    var div_parent = document.createElement("DIV"); 
    var div_child = document.createElement("DIV"); 
    div_child.innerHTML = "Click Me"; 
    div_parent.appendChild(div_child); 
    this.getPanes().overlayLayer.appendChild(div_parent); 
    var this = that; 
    google.maps.event.addDomListener(div_parent, 'click', function(){ 
     google.maps.event.trigger(that, 'click'); // from [http://stackoverflow.com/questions/3361823/make-custom-overlay-clickable-google-maps-api-v3] 
     alert("Clicked"); 
    }); 

} 

Mã của tôi chỉ hoạt động tốt trong IE, nhưng trong Firefox và Chrome, sự kiện nhấp sẽ không được kích hoạt nữa.

Vậy làm thế nào để giải quyết vấn đề?

Trả lời

4

Tôi biết đây là một bài cũ, nhưng nếu bạn đang tự hỏi, đây là giải pháp:

Trong mã của bạn ở trên, bạn cần phải thay đổi chức năng overlay từ:

this.getPanes(). OverlayLayer.appendChild (div_parent);

để:.

this.getPanes() overlayMouseTarget.appendChild (div_parent);

1

Cũng lưu ý mặc dù các sự kiện nhấp của bạn sẽ được chụp trên máy tính để bàn ngay cả khi bạn sử dụng ngăn lớp phủ, để các sự kiện chạm hoạt động, ngăn đích chuột là cần thiết.

Các vấn đề liên quan