将变量传递给 Javascript 中的 onclick 函数无效
Passing variable into onclick function in Javascript not working
我有涉及 Google 标记的代码。我想在信息窗口中创建一个按钮,当您单击它时,它会调用一个函数。但是我传递给它的变量没有被识别。当我使用 Chrome 的控制台时,它显示错误:
roadside_parking_adjust:1 未捕获的 ReferenceError: marker_lat 未定义
在 HTMLInputElement.onclick (roadside_parking_adjust:1)
这是我的代码:
marker2.addListener('click', function() {
var marker_lat = this.getPosition().lat();
var marker_lng = this.getPosition().lng();
var save_coord_btn = "<input type='button' onClick='saveCoordinates(marker_lat, marker_lng, 12345)' class='btn' value='儲存經緯度'></input>";
infowindow.setContent("<div style='text-align:center;'>"+save_coord_btn+"</div>");
infowindow.open(map, this);
});
一旦信息 window 内容显示在地图上,onClick
处理程序将无法访问标记点击处理程序顶部定义的变量(marker_lat
和 marker_lng
).
所以不用
"... onClick='saveCoordinates(marker_lat, marker_lng, 12345)' ..."
将 marker_lat
和 marker_lng
的值连接到 save_coord_btn
字符串,如下所示:
"... onClick='saveCoordinates(" + marker_lat + "," + marker_lng + ", 12345) ...'
或者您可以像这样使用 template literals:
`... onClick='saveCoordinates(${marker_lat}, ${marker_lng}, 12345)' ...`
查看 this JSBin 的工作示例。
我有涉及 Google 标记的代码。我想在信息窗口中创建一个按钮,当您单击它时,它会调用一个函数。但是我传递给它的变量没有被识别。当我使用 Chrome 的控制台时,它显示错误:
roadside_parking_adjust:1 未捕获的 ReferenceError: marker_lat 未定义 在 HTMLInputElement.onclick (roadside_parking_adjust:1)
这是我的代码:
marker2.addListener('click', function() {
var marker_lat = this.getPosition().lat();
var marker_lng = this.getPosition().lng();
var save_coord_btn = "<input type='button' onClick='saveCoordinates(marker_lat, marker_lng, 12345)' class='btn' value='儲存經緯度'></input>";
infowindow.setContent("<div style='text-align:center;'>"+save_coord_btn+"</div>");
infowindow.open(map, this);
});
一旦信息 window 内容显示在地图上,onClick
处理程序将无法访问标记点击处理程序顶部定义的变量(marker_lat
和 marker_lng
).
所以不用
"... onClick='saveCoordinates(marker_lat, marker_lng, 12345)' ..."
将 marker_lat
和 marker_lng
的值连接到 save_coord_btn
字符串,如下所示:
"... onClick='saveCoordinates(" + marker_lat + "," + marker_lng + ", 12345) ...'
或者您可以像这样使用 template literals:
`... onClick='saveCoordinates(${marker_lat}, ${marker_lng}, 12345)' ...`
查看 this JSBin 的工作示例。