![](/img/trans.png)
[英]Pass data from Spring Boot app into javascript function
[英]How to pass multiple parameter in javascript function which is called from another javascript function?
我正在使用谷歌地图,单击标记后打开的信息窗口将调用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;
在这一行:
var funCall = custid + "," + streetadd + "," + city + "," + state + "," + zip + "," + address + "," + phone + "," + website + "," + co;
您只需构建一个巨大的string
其中包含用逗号分隔的变量。 因此,在这种情况下,您还只提交了一个参数( string
)。 尝试将所有参数包装成这样的参数对象:
var params = {
custID: custid,
streetAdd: streetadd,
[...]
}
并将其提交给onClick="setStyles(params)"
函数。
setStyles
的签名应如下所示:function setStyles(params){...}
在setStyles
您可以使用sth访问每个参数。 像params.custID
或您称呼参数对象的members
之类的...。
还请考虑以下问题中的注释中给出的提示,例如使用+=
,这被认为是良好的编码样式...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.