2012-10-11 3 views
0

그래서지도를 클릭 할 때 코드를 작성하고 있습니다. 그것은 좌표 값을 검색하고 그것을 바인딩하려고합니다 (그 값을 보여줌). 내가 그것을 테스트 한 좌표 및 클릭 이벤트가 작동하지만 텍스트 상자에 바인딩하는 데 문제가있는 것 같아요. 이 문제를 해결하는 방법에 대한 제안?Openlayers에서 html 텍스트 상자에 좌표 값을 바인딩

코드 :

<script type="text/javascript" src="http://www.openlayers.org/api/OpenLayers.js"></script> 
    <script type="text/javascript"> 
     OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, { 
        defaultHandlerOptions: { 
         'single': true, 
         'double': false, 
         'pixelTolerance': 0, 
         'stopSingle': false, 
         'stopDouble': false 
        }, 

        initialize: function (options) { 
         this.handlerOptions = OpenLayers.Util.extend(
           {}, this.defaultHandlerOptions 
          ); 
         OpenLayers.Control.prototype.initialize.apply(
           this, arguments 
          ); 
         this.handler = new OpenLayers.Handler.Click(
           this, { 
            'click': this.trigger 
           }, this.handlerOptions 
          ); 
        }, 

        trigger: function (e) { 
         var lonlat = map.getLonLatFromPixel(e.xy); 

         alert("You clicked near " + lonlat.lat + " N, " + 
                 +lonlat.lon + " E"); 
         $('#latlon').value = lonlat; 
        } 
       }); 
    </script> 

는 내가 텍스트 상자를 정의하는 방법 :

<input type="text" name="coordinates" id="latlon" value="" Font-Names="Tahoma" Font-Size="10pt" Width="95%" /> 

오류 메시지 : 이는

Uncaught TypeError: Cannot set property 'value' of null 
OpenLayers.Control.Click.OpenLayers.Class.trigger 

답변

1

당신은 $('#latlon')value 속성을 사용하지 않습니다 한정된.

$('#latlon').val(lonlat);을 jQuery에서와 같이 사용하십시오.

valueval()의 차이점에 대한 자세한 내용은 스택 오버 플로우 문제를 참조하십시오.

jquery function val() is not equivalent to "$(this).value="?

,이 코드에 jQuery를 포함됩니다 Openlayers.js 파일을 포함하기 전에 다음 줄을 추가

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.js"></script> 
+0

내가 그것을 변경하지만 이전과 같은 오류를 제공합니다 ... 어떤 다른 제안? –

+0

경고 상자로 이동합니까? 또한 $()가 jquery에있을 때 HTML에 jquery에 스크립트를 포함 시켰습니다. –

+0

예, 경고 상자로갑니다! 하지만 텍스트 상자에는 없습니다. jquery에 스크립트를 포함하려면 어떻게해야합니까? 그게 무슨 뜻 이니? 당신이 명확히하시기 바랍니다 ... :) –

관련 문제