2011-09-23 3 views
2

GMap 정보 창에서 jQuery를 트리거하고 싶습니다. jQuery를위한GMaps에서 jQuery를 트리거하는 방법 infowindow

var theContent = "<form action='#' method='post' onSubmit='return false;'><input type='text' name='firstname' />"; 
theContent += "<input type='submit' value='Save' /></form>"; 

var infowindow = new google.maps.InfoWindow({  
    content: theContent 
}); 
infowindow.open(map, marker); 

이러한 코드 : 나는이 내 GMAP에 대한 코드를

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type='text/javascript'> 
    $(document).ready(function() { 
     $('form').bind('submit',function() { 
      var str = $('form').serialize(); 

      $.ajax({ 
       type: "POST", 
       url: "save.php", 
       data: str, 
       success: function(msg){ 
        alert('Saved!'); 
       } 
      }); 

      return false; //so the page won't refresh 
     }); 
    }); 
</script> 

문제는 '내가 jQuery를 하는게 아닙니다을 생각하는 그 이유는, 정보창의 텍스트 상자에 입력 한 내용이 저장되지 않고있다 GMap 내부 정보/거품 내부에서 트리거됩니다.

GMap 외부에서 양식을 시도해도 정상적으로 작동합니다.

도움 주셔서 감사합니다.

답변

1

지금 당장 jQuery 코드는 문서 준비시 양식에 바인딩되지만 정보 창이 열려 있지 않아도됩니다. 따라서 정보창이 DOM의 일부가 아닌 경우에도 양식에 바인딩 할 수 있습니다. 이는 불가능합니다. 당신이 필요로 다음 중 하나

  1. 전화 $('form').live(...)-infowindow.open(...) 또는
  2. 변경 $('form').bind(...) AFTER $('form').bind(...) RIGHT. 이렇게하면 페이지의 현재 및 미래 양식을 모두 타겟팅하게됩니다.
+0

작동합니다. 감사합니다! :) – Emkey

+0

같은 감정이지만 손쉽게 코드 샘플을 제공합니다. 실제로'.live' 바인딩에 대해 잘 알지 못했습니다. – Kasaku

0

언제 InfoWindow가 생성됩니까? 즉, 해당 최상위 스크립트가 언제 실행됩니까? 여기에 말할만한 정보가 충분하지 않지만 jQuery를 사용하여 양식 제출 전에 양식 제출에 바인드하려고하기 때문에 가능한 이유가있을 수 있습니다.

InfoWindow를 만든 후에는 양식에 바인딩을 시도하십시오.

+0

답장을 보내 주셔서 감사합니다. @PirateKitten, infowindow가 내 window.onload = function() {initialize(); }; – Emkey

관련 문제