Uncatch TypeError: pos.apply 不是 showtooltip() 方法中的函数

Uncaught TypeError: pos.apply is not a function in showtooltip() method

本文关键字:方法 函数 showtooltip TypeError pos apply 不是 Uncatch      更新时间:2023-09-26
jQuery(document).ready(function($) {
    var currentMap;var lat;var log;var latlongarray;var latitude;
    var longitude;var count = 0;var name;var number;var country;
    var maps;var address;var marker;var batch = [];

showTooltip = function(marker) {
    tooltip.innerHTML = marker.tooltip;
    var point = currentMap.getCurrentMapType().getProjection()
               .fromLatLngToPixel(currentMap.fromDivPixelToLatLng(
                new GPoint(0, 0),true),currentMap.getZoom());
    var offset = currentMap.getCurrentMapType().getProjection()
                 .fromLatLngToPixel(marker.getPoint(),
                                            currentMap.getZoom());
    var anchor = marker.getIcon().iconAnchor;
    var width = marker.getIcon().iconSize.width;
    var height = tooltip.clientHeight;
    var pos = new GControlPosition(G_ANCHOR_TOP_LEFT,
                       new GSize(offset.x - point.x - anchor.x + width,
                            offset.y - point.y - anchor.y - width));
    pos.apply(tooltip);
    tooltip.style.visibility = "visible";
}
initialize = function() {var tim = (new Date).getTime();
 var provNum = $("input[name='providerNumber']").val();        
$.getJSON('newmap.do?t=' + tim+ '&providerNumber='+ provNum,
        function(data) {$.each(data,function(i,item) {
                    address = item.name + item.address;
                    name = item.name;
                    latitude = item.lattitude;
                    longitude = item.longitude;
                    number = item.number;
                    var icon = new GIcon();
                    icon.image = "images/pin.png";
                    icon.iconAnchor = new GPoint(16,16);
                    icon.infoWindowAnchor = new GPoint(16,0);
                    icon.iconSize = new GSize(32,32);
                    icon.shadowSize = new GSize(59,32);         
                    marker = new GMarker(new GLatLng(item.lattitude,
                                     item.longitude),{
                                                    draggable : true,
                                                    icon : icon
                                        });
                    lat = item.lattitude;
                    log = item.longitude;
                    marker.disableDragging();
                    batch.push(marker);
                    marker.tooltip = "<div class='tooltip'>"+item.name+
                                '<br>'+ item.number+'<br>BEDS:'+ item.bed
                                + '<br>DSH: '+ item.dsh+ "</div>";
                    GEvent.addListener(marker,"mouseover",function() {
                                    showTooltip(marker);
                                    });
                    GEvent.addListener(marker,"mouseout",function() {
                                    tooltip.style.visibility = "hidden";
                        }); 
                    GEvent.addListener(marker,"mouseout",function() {
                                    tooltip.style.visibility = "hidden";
                        });             
                    });
   if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map-c"));
        map.setCenter(new GLatLng(lat,log),11);
        tooltip = document.createElement("div");
        map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltip);
        tooltip.style.visibility = "hidden";
        map.setUIToDefault();
        mgr = new MarkerManager(map);
        mgr.addMarkers(batch,2);
        mgr.refresh();
        currentMap = map;
     }
     });
   });
}
if (jQuery.browser.safari&& document.readyState != "complete") {
            initialize();   
}
});

这是我的代码..在这里我从SQL获取纬度和经度,并在谷歌地图中添加标记。现在我正在尝试为每个标记添加信息框但是我收到一个错误 " 未捕获的类型错误:pos.apply 不是一个函数"在行 "pos.apply(tooltip(;"有谁知道如何解决这个问题?

.

apply 是 Function.prototype 的一部分,它在普通对象中不可用。

让我告诉你,你在这里做什么。

var obj = {i : 10}
obj.apply(this); //Uncaught TypeError: obj.apply is not a function

您正在从new GControlPosition创建对象,并且在此对象上 .apply 不可用