Tôi có câu hỏi liên quan đến bản đồ google và xử lý sự kiện/nghe.Đính kèm trình xử lý sự kiện vào phần tử bên trong bong bóng thông tin bản đồ google
Sử dụng jQuery và bản đồ google v3, tôi có thể đặt điểm đánh dấu bản đồ và trình xử lý sự kiện sẽ mở ra một infobubble khi người dùng nhấp vào điểm đánh dấu. Những gì tôi muốn làm (nhưng cho đến nay vẫn chưa thể tìm ra) là thêm một trình xử lý sự kiện khác vào nội dung của bong bóng thông tin. Ví dụ: nếu người dùng nhấp vào điểm đánh dấu trên bản đồ, hãy mở bong bóng thông tin (phần đó hoạt động) và sau đó nếu họ nhấp vào nội dung nào đó bên trong infobubble sẽ làm điều gì đó khác. Tôi đã dán mã của tôi dưới đây, cảm ơn trước sự giúp đỡ nào
function addMarker(data) {
var myLatlng = new google.maps.LatLng(data.Latitude, data.Longitude);
var title = data.title? data.title: "";
var icon = $('#siteUrl').val() + 'img/locate.png';
var bubbleContentString = "<span class=\"bubble-details-button\">Get Details about " + title+ "</span>";
myInfoBubble = new InfoBubble({
content: bubbleContentString,
hideCloseButton: true,
backgroundColor: '#004475',
borderColor: '#004475'
});
var myMarker = new google.maps.Marker({
position: myLatlng,
map: map,
title: title,
icon: icon
});
addListenerToMarker(myMarker, myInfoBubble);
markerSet.push(myMarker, myInfoBubble);
}
function addListenerToMarker(marker, bubble){
console.log($(bubble.getContent()).find('.bubble-details-button')[0]);
google.maps.event.addListener(marker, 'click', function() {
if (!bubble.isOpen()) {
google.maps.event.addListenerOnce(bubble, 'domready', function(){
console.log($(bubble.getContent()).find('.bubble-details-button')[0]);
google.maps.event.addDomListener($(bubble.getContent()).find('.bubble-details-button')[0], 'click', function(){
alert("hi");
});
});
bubble.open(map, marker);
}
});
}
Những gì bạn đang nói có ý nghĩa, tuy nhiên tôi đã thử triển khai đề xuất của bạn và tôi đã không thành công. Tôi đã sao chép và dán đề xuất của bạn tuy nhiên bản thân bong bóng không mở nên tôi không thể nhấp vào nội dung bên trong bong bóng –
Rất tiếc, điều đó không chính xác. Có lỗi đánh máy trong mã gốc của tôi. Tôi đã khắc phục lỗi đánh máy đó, đó là dòng tôi đã gọi tới google.maps.event.addListener (marker, 'click', function() { điểm đánh dấu đã đọc, mymarker. Tuy nhiên, khắc phục các lỗi chính tả trong một lỗi khi tôi nhấp vào điểm đánh dấu trên bản đồ, thông báo lỗi là: Lỗi thời gian chạy Microsoft JScript: Không thể nhận giá trị của thuộc tính 'addEventListener': đối tượng là null hoặc không xác định –
Xin lỗi, trả lời muộn. kiểm tra này 'console.log ($ (bubble.getContent()). tìm ('. bubble-details-button') [0])'? Có phải DOM Element? – Engineer