Javascript函数元素使其他JS函数不起作用

时间:2019-02-22 09:39:28

标签: javascript jquery

我正在使用脚本(不是我自己制作的)来通过Markerclustering在Google MAP API中显示标记。我已经将此脚本包括在我的页面之一中,此后,我的jQuery代码不再起作用。

我已经开始使用console等进行调试,并且发现了导致此问题的原因,这个功能位于marker_cluster JS脚本页面的顶部:

<script type="text/javascript" src="speed_test.js"></script>
<script type="text/javascript">
  google.maps.event.addDomListener(window, 'load', speedTest.init);
</script>
<script src="vendors/markerclustererplus/src/markerclusterer.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=speedTest.init">
</script>
function $(element) {
  return document.getElementById(element);
}

var speedTest = {};

speedTest.pics = null;
speedTest.map = null;
speedTest.markerClusterer = null;
speedTest.markers = [];
speedTest.infoWindow = null;

speedTest.init = function() {
  var latlng = new google.maps.LatLng(39.91, 116.38);
  var options = {
    // 'zoom': 10,
    // 'center': latlng,
    // 'mapTypeId': google.maps.MapTypeId.ROADMAP
    zoom: 9,
    center: new google.maps.LatLng(46.188, 6.12701),
    gestureHandling: "greedy",
    disableDefaultUI: true,
    zoomControl: true,
    fullscreenControl: true,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };

  speedTest.map = new google.maps.Map($('map'), options);
  speedTest.pics = data.photos;

  var useGmm = document.getElementById('usegmm');
  google.maps.event.addDomListener(useGmm, 'click', speedTest.change);

  var numMarkers = document.getElementById('nummarkers');
  google.maps.event.addDomListener(numMarkers, 'change', speedTest.change);

  speedTest.infoWindow = new google.maps.InfoWindow();
  speedTest.showMarkers();
};

当我评论这段代码时:

function $(element) {
  return document.getElementById(element);
}

然后我的jquery代码可以再次使用,但是Google Map API不再显示了。我认为这是因为它是常规功能...而且它必须与页面的所有功能相互干扰,这才引起问题。

您可以找到此code here

file in question here

如果您有任何线索可以解决此问题,我将非常感谢=)

谢谢,祝你有美好的一天。

1 个答案:

答案 0 :(得分:0)

$指的是jQuery,您通过声明以下函数来对其进行更改

function $(element) {
  return document.getElementById(element);
}

使用其他功能名称代替$。也许您可以使用e

function e(element) {
  return document.getElementById(element);
}