2015-01-25 3 views
-1

내 jQuery 추가 기능이 작동하지 않습니다. "CollapsiblePanelContent"라는 클래스가있는 div가 있습니다. 나도 마커를 생성하는 Google지도 마커 생성기가 있습니다. XML에서 마커 정보를 모두 포함하는 배열 markerArr이 있습니다. 발전기가 완료되면 내가 함수 appendMarkers()를 호출 :jQuery가 Google지도와 함께 작동하지 않습니다.

사업부는 다음과 같습니다
function appendMarkers() { 
for(var i = 0; i < markersArr.length; 
i++) {  
var marker = markersArr[i]; 

$('.CollapsiblePanelContent').append("<a href='#' 
onclick='showInfoWindow("+i+")> 
"+marker.getAttribute('name')+"</a><br>");  
} 
} 

:

DIV 클래스 = "CollapsiblePanelContent">

/DIV>

콘솔 로깅 나에게 markerArr의 정확한 길이를 주었고 Google지도와 jquery가로드되었는지 확인하는 것이 모두 긍정적이었습니다.

누군가 내가 뭘 잘못하고 있다고 말할 수 있습니까?

업데이트 내 기능에 marker.getAttribute를 사용했을 때 어떻게 든 작동하지 않았습니다. 받는 다음

var name = markersArr[i].getAttribute("name") 

그리고 편집 해 : 나는 다음을했을 때 는 그러나

$('.CollapsiblePanelContent').append(name); 

그것은 일을했다. 이 변경으로 인해 왜 효과가 있었는지는 분명하지 않습니다. 어쩌면 누군가가 설명 할 수 있을까요?

+0

를 통해 액세스 할 수 showInfoWindow에'google.maps.Markers'가 아무튼를 getAttribute 메소드가 없습니다 –

+0

내 질문이 수정되었습니다. markerArr는 변환 된 XML 배열입니다. 그리고 그것은 getAttribute 함수를 가지고 있습니다. – andy

답변

1

기능은 구문 오류가

가정하면 마커가 이런 식으로 설정되어 있습니다.

요소 작성하는 대신 문자열 연결의 jQuery를-방법을 사용

 function appendMarkers() { 

     for(var i = 0; i < markersArr.length; i++) {  
      var marker = markersArr[i]; 

      $('.CollapsiblePanelContent') 
      .append($('<a>',{href:'javascript:void(0)'}) 
        .text(marker.getAttribute('name')) 
        .click(i,showInfoWindow)) 
      .append('<br/>');  
      } 
     } 

참고 : i -argument이 arguments[0].data

+0

매우 유용하고, 나를 argument.data로 가리켜 주셔서 감사합니다. 이것에 대해서는 전혀 몰랐습니다. 네가 설명을 해준 이후로 너의 anwser를 받아 들일 것이다. – andy

+0

'$를 사용할 때.클릭 (또는 다른 이벤트)을 사용하여 리스너를 객체에 할당하면 선택적으로 이벤트 인수 (핸들러의 첫 번째 인수) data-property로 설정 될 사용자 정의 제 1 인수로 전달할 수 있습니다. –

0

마커 개체에 특성을 추가 할 수 있습니다. 일단 검색하면 액세스 할 수 있습니다. 그래서 :

var marker = new google.maps.Marker({ 
       position: myLatlng, 
       map: map, 
       name: 'my name is...' 
}); 

당신은 함수에서 이런 식으로 이름을 검색 할 수 있습니다 :

function appendMarkers() { 
    for (var i = 0; i < markersArr.length; i++) { 
     var marker = markersArr[i]; 
     $('.CollapsiblePanelContent').append("<p>"+marker.name+"</p>"); 
    } 
} 
+0

의견을 보내 주셔서 감사합니다. markerArr은 실제로 배열로 변환 된 XML 파일입니다. 하지만 팁 주셔서 감사합니다! – andy

+0

환영합니다. 도와 주시면 투표 해주세요. – acontell

+0

btw, 도움이 필요하면 xml과 질문을 분석하여 구문을 분석하십시오. – acontell

관련 문제