使用onlclick方法后,OpenLayers地图加载失败


JQuery: OpenLayers map fails to load after onlclick method

我在JQM网站上有一个OpenLayers地图,无法正常加载。我确信它的onclick()方法,但我不太确定周围的任何其他方式。我看过。click()方法在JQuery网站上,但我不认为这将工作,由于该方法必须如何工作。

onclick()方法位于一个列表中,并加载一个JS函数来更新另一个页面上的html。列表由PHP循环填充,该循环从数组中获取数据;所更改的HTML取决于所选择的项目。该函数还在同一页面上创建映射。

下面是PHP的循环:
<?php       
          for ($row = 0; $row < $arrlength; $row++)
          {
              echo "<li>";   
              echo "<a href='#room-info' onclick='updateRoom('"".$rooms[$row]["Room"]."'", '"".$rooms[$row]["Building"]."'", '"".$rooms[$row]["Campus"]."'", '"".$rooms[$row]["X"]."'", '"".$rooms[$row]["Y"]."'");'>";
              echo $rooms[$row]["Room"];
              echo "</a>"; 
              echo "</li>";
          }
?>
下面是JS函数:
function updateRoom(roomNumber, building, campus, xCoor, yCoor)
    {
        x=document.getElementById("roomInfo");  // Find the element
        x.innerHTML="<h1>Room</h1>" + roomNumber + "<br><h1>Building</h1>" + building + "<br><h1>Campus</h1>" + campus;    // Change the content
        var map, baseLayer;
        var options = {numZoomLevels: 7, isBaseLayer: true,};
        map = new OpenLayers.Map('map');            
        baseLayer = new OpenLayers.Layer.Image("College Lane","college-lane-large.png", 
        new OpenLayers.Bounds(-1000, -1000, 1000, 1000),
        new OpenLayers.Size(1500,1500), options);
        map.addLayer(baseLayer);
        var center = new OpenLayers.LonLat(xCoor,yCoor);
        map.setCenter(center ,0);  
        map.addControl(new OpenLayers.Control.LayerSwitcher());
        map.addControl(new OpenLayers.Control.MousePosition());
        var size = new OpenLayers.Size(21,25);
        var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
        var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png',size,offset);
        var markers = new OpenLayers.Layer.Markers( "Marker" );
        map.addLayer(markers);
        markers.addMarker(new OpenLayers.Marker(center), icon);
    }

一旦一个项目被选中,你就会被带到一个显示更新的HTML和OpenLayers地图的页面。html文本更新正确,但OpenLayers地图为空。

我想把代码放在这里,但是有很多。我的网站可以在这里找到:http://getontinternet.com/fyp/index.php

要进入麻烦的页面,您必须首先单击"查找房间",搜索LC154,因为这是我唯一正确设置的项目。一旦房间被选中,它就会显示页面。

我一直在试图解决这个问题,现在,所以我会很感激有人实际上设法弄清楚为什么它不工作:)

你的结果页面给出了这样的错误:TypeError: $.event。句柄未定义。我认为您应该看看:返回事件处理程序返回未定义