我正在使用Google地图,点击标记后打开的信息窗口将调用JavaScript函数。
还有一个具有多个参数的函数必须从该函数中调用。

以下是我的代码:

function createMarker(point,custid,streetadd,city,state,zip,address,phone,website,co) {
    var infowindowHover,infowindowClick;

    var hoverText = "<CENTER><B>" + co + "</B></CENTER>";
    var markerMarkup = "<TABLE><TR><TD colspan='2'><B>";
    markerMarkup = markerMarkup + co + "</B></TD></TR><TR><TD colspan='2'>";
    markerMarkup = markerMarkup + streetadd + "</TD></TR><TR><TD colspan='2'>";
    markerMarkup = markerMarkup + city + "," + state + " " + zip + "</TD></TR><TR><TD colspan='2'>";
    markerMarkup = markerMarkup + phone + "</TD></TR><TR><TD colspan='2'>";
    if(website.indexOf("http://")>0) {
        markerMarkup = markerMarkup +"<a href=";
    } else {
        markerMarkup = markerMarkup +"<a href=http://";
    }
    markerMarkup = markerMarkup + website + " target=_blank>" + website + "</a></TD></TR><TR><TD>";
    var funCall = custid + "," + streetadd + "," + city + "," + state + "," + zip + "," + address + "," + phone + "," + website + "," + co;
    markerMarkup = markerMarkup + "<input type='button' class='button' value='see available styles' id='styles' onclick='setstyles("+ funCall +");'></input>";
    //markerMarkup = markerMarkup + "<input type='button' class='button' value='see available styles' id='styles' onclick='setstyles("+ custid +");'></input>";

    markerMarkup = markerMarkup + "</TD></TR></TABLE>";

    var marker = new google.maps.Marker({
        position: point,
        map: map,
        icon: image
    });

    google.maps.event.addListener(marker, "mouseover", function () {
        if (infowindowHover) infowindowHover.close();
        infowindowHover = new google.maps.InfoWindow({content: hoverText});
        infowindowHover.open(map, marker);
    });

    google.maps.event.addListener(marker, "mouseout", function () {
        if (infowindowHover) infowindowHover.close();
    });

    google.maps.event.addListener(marker, "click", function () {
        if (infowindowClick) infowindowClick.close();
        infowindowClick = new google.maps.InfoWindow({ content: markerMarkup });
        infowindowClick.open(map, marker);
    });

    //google.maps.event.addListener(marker, "mouseout", function () {
    //    if (infowindowClick) infowindowClick.close();
    //});
    return marker;
}


我要从此函数调用的第二个函数是:

function setstyles(idcust,streetadd,city,state,zip,address,phone,website,co){
    var msg= "This feature is  available only to logged-in ";
    alert(idcust);
    <%if Session("ctype")="1" then %>
        alert(msg + " non wholesalers.");
    <%else %>
        <%if Session("ctype")="0" then %>
            var storestyles = 'storestyles.asp?id=' + idcust;
            document.getElementById('storeaddresses').style.display = 'block';
        <%else %>
             alert(msg + "users.");
        <% end if %>
    <%end if %>
}


我想将参数从createMarker()传递到setstyles(),目前我无法执行。

最佳答案

在这条线

var funCall = custid + "," + streetadd + "," + city + "," + state + "," + zip + "," + address + "," + phone + "," + website + "," + co;


如果任何参数是字符串,则应将它们包装在引号中。

例如,如果城市,则应为字符串:

var funCall = custid + "," + streetadd + ",\"" + city + "\"," + state + "," + zip + "," + address + "," + phone + "," + website + "," + co;

关于google-maps-markers - 如何在从另一个JavaScript函数调用的JavaScript函数中传递多个参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13723828/

10-12 00:07
查看更多