3

これは、コントローラーの js.coffee ファイルにあるコーヒー スクリプト コードです。特定の場所などを中心とした単純なマップを開こうとしています。呼び出しmoveend_eventのコメントを外すalert("hello")と正常に機能するため、マップが機能し、コールバックがトリガーされます。

$(document).ready ->

  map = undefined
  options =
    projection: new OpenLayers.Projection('EPSG:900913')
    displayProjection: new OpenLayers.Projection("EPSG:4326")
    center: new OpenLayers.LonLat(-115.540123, 54.073189)
    controls: [new OpenLayers.Control.Navigation(), new OpenLayers.Control.PanZoomBar(), new OpenLayers.Control.LayerSwitcher()]
    eventListeners:
      'moveend': moveend_event
  map = new OpenLayers.Map("map_element", options)
  osm = new OpenLayers.Layer.OSM('OpenStreetMap Layer')
  map.addLayer osm
  map_center = new OpenLayers.LonLat(-115.540123, 54.073189).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject())
  map.setCenter(map_center, 11)

moveend_event = ->
  #alert "Hello!"
  #$(".map_location").innerHTML "Hello!"

私は近いですが、Openlayers / jQueryの競合があるとは思いません。ページ作成者で map_location div を設定しようとする$(".map_location").innerHTML "Hello!"と、エラー コンソールに次のように表示されます。

TypeError: 'undefined' は関数ではありません ('$(".map_location").innerHTML("Hello!")' を評価しています)

それが役立つ場合は、レイヤーを開く前にjqueryをロードしています。私はいくつかのグーグルを行い、それはjQuery noConflictモード(http://api.jquery.com/jQuery.noConflict/)である可能性がありますが、私はjavascriptの初心者であり、ここで問題を認識したり、修正したりするのに十分な知識がありませんそれ。簡単に修正できると確信していますが、現在のところ手がかりがありません。

4

1 に答える 1

4

innerHtmlは jQuery 関数ではありません$('selector').html(new html here)。代わりは。

htmljavascript の jQuery 版です。innerHtml

于 2012-09-07T05:50:39.573 に答える