Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript I';我试图通过点击表格行来定位谷歌地图_Javascript_Jquery_Google Maps_Google Maps Api 3 - Fatal编程技术网

Javascript I';我试图通过点击表格行来定位谷歌地图

Javascript I';我试图通过点击表格行来定位谷歌地图,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,在我的网页上,当页面加载时,它会加载一个由我数据库中的内容生成的表,所有标记都会立即加载到地图上,但我希望能够单击表行以居中并缩放它所代表的标记,我正在尝试找出它,但我对JQuery/Javascript还不熟悉,只是在学习的过程中 这是我正在使用的JQuery函数 $("table#listOfStops").find('tr').each(function() { $(this).on('click', function() { alert(arrMarkers.lengt

在我的网页上,当页面加载时,它会加载一个由我数据库中的内容生成的表,所有标记都会立即加载到地图上,但我希望能够单击表行以居中并缩放它所代表的标记,我正在尝试找出它,但我对JQuery/Javascript还不熟悉,只是在学习的过程中

这是我正在使用的JQuery函数

$("table#listOfStops").find('tr').each(function() {
  $(this).on('click', function() {

      alert(arrMarkers.length);
      var num = $(this).data("num");
      for (var i = 0; i < arrMarkers.length; i++) {
        if ( arrMarkers.id == 'marker'+num) {
          map.setCenter(arrMarkers[i].position);
          map
        }
      }
  });
});
我只是在将表行与标记数组中的适当标记点进行匹配,以设置类似于
map.setPosition(arrMarkers[I])的位置时遇到了一个难以想象的困难


提前感谢。

jquery。每个函数提供每个结果的索引。 如果将查询修改为.find('tbody tr'),则索引应与数组中的位置匹配 比如:

$("table#listOfStops").find('tbody tr').each(function(idx) {
  var rowNumber=idx;
  $(this).on('click', function() {  
        map.setCenter(arrMarkers[rowNumber].getPosition());
  });
});

$(this.data(“num”)
应该从哪里来?tr-elements没有设置任何内容。@Dr.Molle我在读一些关于堆栈溢出的内容,我甚至不知道是什么数据。它似乎只是解决了他的问题:(我意识到我仍然在尝试使用你的标记id(它没有设置在任何地方)-重新编辑嗯,它仍然不工作,数组中充满了这个
[object],[对象对象],[对象对象对象],[对象对象],[对象对象对象],[对象对象对象],[对象对象对象],[对象对象对象],[对象对象对象],[对象对象对象],[对象对象对象],[对象对象对象对象],[对象对象对象对象对象],[对象对象对象],[对象对象对象对象对象对象]
idx在函数中的作用是什么?非常棒,工作非常完美。我很高兴现在已经在这上面工作了24个多小时。昨天我放弃了,上床睡觉了。你能给我解释一下idx得到了什么值吗?比如函数(idx)的作用是什么吗?jquery对象包含一系列与选择器匹配的html元素(在本例中,tbody中的s)$.each(func(idx){})然后遍历数组并依次调用每个s上的函数func,idx值是数组中的位置,在本例中,它直接映射到markers数组中相关标记的位置:)
function initialize() {
  geocode = new google.maps.Geocoder();
 var mapOptions = {
  zoom: 10,
  center: new google.maps.LatLng(56.7626362, -111.379652),
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  disableDefaultUI: false,
  zoomControl: true,
  zoomControlOptions: {
    style: google.maps.ZoomControlStyle.LARGE
  }
};

  map = new google.maps.Map(document.getElementById('gmaps'),
  mapOptions);

  google.maps.event.addListener(map, 'click', function(event) {
    var latitude = event.latLng.lat();
    var longitude = event.latLng.lng();
    deleteOverlays();
    addMarker(event.latLng);
    updateTextFields(latitude, longitude);
  });
  <?php while($stmt -> fetch()) { ?>
  var long = "<?php echo $gLongitude ?>";
  var lati = "<?php echo $gLatitude; ?>";
  var title = "<?php echo $gTitle; ?>"
  setMarker(lati, long, title);
  <?php } $stmt -> close(); $mysqli -> close();?>



}
function setMarker(lat,lon, markerTitle) {
  var latLonMarker = new google.maps.LatLng(lat,lon);
  marker = new google.maps.Marker({
    position: latLonMarker,
    map: map,
    icon: 'icon.png',
    title: markerTitle
  });
  google.maps.event.addListener(marker, 'dragend', function() {
    $('#inputLatitude').val(this.getPosition().lat());
    $('#inputLongitude').val(this.getPosition().lng());
  });
  arrMarkers.push(marker);
}
$("table#listOfStops").find('tbody tr').each(function(idx) {
  var rowNumber=idx;
  $(this).on('click', function() {  
        map.setCenter(arrMarkers[rowNumber].getPosition());
  });
});