将变量传递给 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_latmarker_lng).

所以不用

"... onClick='saveCoordinates(marker_lat, marker_lng, 12345)' ..."

marker_latmarker_lng 的值连接到 save_coord_btn 字符串,如下所示:

"... onClick='saveCoordinates(" + marker_lat + "," + marker_lng + ", 12345) ...'

或者您可以像这样使用 template literals

`... onClick='saveCoordinates(${marker_lat}, ${marker_lng}, 12345)' ...`

查看 this JSBin 的工作示例。