2010-02-07 17 views

Trả lời

9

Nếu cuộc gọi ràng buộc sự kiện được gọi trước khi cuộc gọi đến openInfoWindowHtml như trong ví dụ của bạn, khoảng không nằm trong DOM trong khi cuộc gọi đầu tiên tìm kiếm các phần tử có lớp "foo", vì vậy không có trình xử lý nào đính kèm.

Bạn có thể di chuyển trình xử lý sự kiện đó được gọi sau openInfoWindowHtml hoặc sử dụng liên kết sự kiện "trực tiếp" để jQuery giám sát DOM cho bất kỳ phần tử mới nào bằng bộ chọn đã cho.

$(".foo").live('click', myFunction); 
+0

Cảm ơn Kevin, hoạt động. Tôi cần phải đặt một sự kiện nhấp chuột trên một liên kết nội bộ di động jquery và trang nội bộ dường như tải trước khi sự kiện xảy ra? chỉ là một cái gì đó để nhận thức được. –

3

Theo như tôi biết, GMaps tiêm nội dung vào InfoWindow programatically, vì vậy bất cứ xử lý sự kiện ràng buộc về các yếu tố tiêm sẽ không cháy, trừ khi bạn sử dụng đoàn sự kiện:

$(".foo").live("click", myFunction); 

Xem live xử lý sự kiện.

0

Hãy thử điều này:

google.maps.event.addListener(infowindow,"**domready**",function() { 
    var Cancel = document.getElementById("Cancel"); 
    var Ok = document.getElementById("Ok"); 

    google.maps.event.addDomListener(Cancel,"click",function() { 
     infowindow.close(); 
    }); 

    google.maps.event.addDomListener(Ok,"click",function() { 
     infowindow.close(); 
     console.log(position); 
     codeLatLng(position); 
    }); 
}); 
10

tôi couldnt nhận nó làm việc như Kevin Gorski giải thích ...

với jquery 1.9.1 và bản đồ api v = 3.exp các công việc sau:

infowindow.setContent('<a href="#" id="test">test</a>'); 
google.maps.event.addDomListener(infowindow, 'domready', function() { 
    $('#test').click(function() { 
     alert("Hello World"); 
    }); 
}); 
0

giải pháp đơn giản và phù hợp với tôi. sử dụng sự kiện onclick trong span.

<span class=\"foo\" onclick="test()">myText</span> 

function test(){ 
alert('test OK'); 
}