我目前正在尝试使用Leaflet在弹出窗口中添加按钮。
很好我也想在该按钮上添加一个onclick
事件。但这似乎部分起作用。当我将str
替换为ID时,该参数会正确发送到load_now()
。但是,当我将str
设置为参数时,load_now()
函数将不会执行。
这是代码中最重要的部分:
function draw(markers, category) {
//alert(category);
var mymap = ...
var jArray = markers;
for(o in jArray){
//alert(jArray[o].id);
var trottinette = jArray[o];
var lat = trottinette.lat;
var lng = trottinette.lng;
var id = trottinette.id;
var plt = trottinette.plt;
var chg = trottinette.chg;
var marker = L.marker([lat, lng]).addTo(mymap);
var str = id + "x" + lat + "x" + lng + "x" + chg;
if(category=='user'){
marker.bindPopup("<b>id:" + id + "</b><br>plaintes: "+
plt + "<br> niveau: " + chg + "/4 ").openPopup();
}else if(category=='rechargeur'){
//TODO modifier la DB
marker.bindPopup("<b>id:" + id + "</b><br>plaintes: "+
plt + "<br> niveau: " + chg +
"/4 <br/><input type='submit' value='Load Now' onclick='load_now("+ id +");'/>");
}
}
alert(str);
}
function load_now(str){
//this part doesn't get executed
alert(str);
var id = str.split("x");
var r = confirm("Start load process for scooter " + id[0] + "?");
if (r == true) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "load_scooter_action.php?q=" + str, true);
xmlhttp.send();
}
}
您知道我做错了什么吗? 预先感谢
答案 0 :(得分:0)
str
周围缺少双引号,如以下输出所示:
<b>id:595</b><br>plaintes: 0<br> niveau: 4/4 <br/><input type='submit' value='Load Now' onclick='load_now(595x50.8352x4.3669x4);'/>
替换行
var str = id + "x" + lat + "x" + lng + "x" + chg;
与
var str = "\"" + id + "x" + lat + "x" + lng + "x" + chg +"\"";
解决了问题。