2012-02-28 41 views
5

Trang này mô tả Bộ điều khiển mặc định cho API V3 của Google Maps: http://code.google.com/apis/maps/documentation/javascript/controls.html#DefaultUILàm cách nào để liên kết trình xử lý sự kiện với sự kiện nhấp chuột PanControl mặc định của API Google Maps?

Tôi quan tâm đến việc tiếp nhận sự kiện nhấp của PanControl và liên kết nó với chức năng tùy chỉnh của tôi.

Ví dụ: khi người dùng nhấp vào điều khiển giao diện người dùng Pan Left (Lên/Phải/Xuống), không chỉ thay đổi chế độ xem của bản đồ mà còn gọi hàm A.

Như tôi đã tưởng tượng, một cách để làm điều này, là lắng nghe sự kiện nhấp chuột của Bản đồ và kiểm tra mục tiêu của nó?

Bất kỳ đề xuất/ví dụ (đặc biệt hữu ích) về cách thực hiện việc này?

Trả lời

1

Giả định của bạn (nghe sự kiện nhấp chuột của Bản đồ và kiểm tra mục tiêu của nó) có âm thanh chính xác, vì không có triển khai nào để truy cập các điều khiển.

này làm việc cho tôi (bây giờ):

google.maps.event.addDomListener(map.getDiv(),'click', 
      function(e) 
      { 
       var t=e.target, 
        a=[null,'left','right','up','down']; 

       if(
        t.parentNode.parentNode.hasAttribute('controlwidth') 
         && 
        t.parentNode.childNodes.length==5 
         && 
        t.parentNode.firstChild.tagName=='IMG' 
         && 
        t.parentNode.firstChild.src 
         =="http://maps.gstatic.com/mapfiles/mapcontrols3d7.png" 
       ) 
        { 
        for(var i=1;i<t.parentNode.childNodes.length;++i) 
        { 
         if(t.parentNode.childNodes[i]==t) 
         { 
         alert('You\'ve clicked on \n>>>'+a[i]+ 
           '\nyou may call a function now.'); 
         } 
        } 
        } 
      }); 

http://jsfiddle.net/doktormolle/fwgMy/

Nhưng nó chỉ hoạt động cho đến khi Google sẽ sửa đổi đánh dấu, và đây có thể là ngày mai.

Cách tiếp cận tốt hơn là ẩn điều khiển chảo và tạo kiểm soát của riêng bạn.

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