将变量传递给Javascript中的onclick函数不起作用

3

我有一个涉及Google标记的代码。我想在infowindow内创建一个按钮,当您单击它时,它会调用一个函数。但是我传递给它的变量没有被识别。当我使用Chrome的控制台时,它显示以下错误:

roadside_parking_adjust:1 Uncaught ReferenceError: marker_lat未定义 at 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);
});
1个回答

2

当信息窗口内容在地图上显示时,onClick处理程序将无法访问在标记单击处理程序(marker_latmarker_lng)顶部定义的变量。

因此,我们可以使用以下方法代替:

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

marker_latmarker_lng的值连接到save_coord_btn字符串中,格式如下:
"... onClick='saveCoordinates(" + marker_lat + "," + marker_lng + ", 12345) ...'

或者您可以像这样使用模板字符串

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

可以查看这个JSBin以获取一个可运行的示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接