2010-07-11 3 views
0

다음 스크립트를 사용하여 div를 만들고 Google지도 DOM 수신기를 추가 한 다음 JavaScript의 기본 DOM 조작 방법을 사용하여 다른 div에 다른 div에 추가합니다 :jQuery를 사용하여 만든 요소에 Google지도 DOM 수신기를 추가 할 수 없습니다.

var div = document.createElement('div'); 
var html = '<b>' + string_of_text + '</b>'; 
div.innerHTML = html; 
google.maps.event.addDomListener(div, 'click', function() { 
    google.maps.event.trigger(marker, 'click'); 
}); 
document.getElementById('sidebar').appendChild(div); 

지금까지는 그렇게 좋았습니다. 페이지가로드되면 div를 클릭하여 마커의 클릭 이벤트가 트리거됩니다. 그러나

, 나는 다음과 같은 사업부가 추가됩니다 jQuery 코드 및 모든 부하와 같은 일을 달성하기 위해 노력하지만, 사업부 클릭하면 더 클릭 된 이벤트가 트리거되지 않을 때 :

var div = $("<div><b>"+string_of_text+"</b></div>"); 
google.maps.event.addDomListener(div, 'click', function() { 
    google.maps.event.trigger(marker, 'click'); 
}); 
$("#sidebar").append(div); 

을하는 방법에 있는가 jQuery를 사용하여 DOM 요소를 만들고 Google Maps DOM 리스너를 제공 하시겠습니까?

답변

1

당신은 요소가 아닌 jQuery 오브젝트을 통과 하기 위해

google.maps.event.addDomListener(div[0], 'click', ... // or div.get(0) 

이 필요합니다. 또한 당신이 원하는 수

(jQuery를 get 참조)

$("#sidebar").append(div); 

대신

$("#sidebar").append(sidebarEntry); 

의 sidebarEntry 어디에서 오는지 모르겠어요.

+0

감사합니다. div.get (0)했습니다. div [0]로 인해 브라우저가 구문에 대해 불평했습니다. 또한 "sidebarEntry"는 원래 스크립트에서 div를 만든 후에 발생하는 변수 할당에서 비롯됩니다. 내 설명을 위해 "div"로 변경하는 것을 잊어 버렸습니다. – Keyslinger

+0

글쎄, 네 문제가 해결 되었다니 다행이다! 건배! :) – galambalazs

+0

$ (div) [0] 트릭을합니다. – Keyslinger

관련 문제