如何用不同的id激发一个函数's

How to fire one function with different id's

本文关键字:函数 一个 何用不 id      更新时间:2024-03-18

我有一个主PHP文件,里面有8个PHP文件。我使用引导类"Modal",并且在每个模态中使用谷歌地图。所以我有不同的ID来显示谷歌地图,但功能是一样的。这意味着,当每个模式弹出窗口中的一个时,该函数将被触发并显示谷歌地图。我为每个ID实现了8种不同的功能。

我想要的是,有没有办法只通过一个函数来实现?

因此,更清楚地说,如果模式弹出窗口带有id = 1,它会在<div id="location_incident1">中显示谷歌地图;如果模式弹出框带有id = 2,它会显示<div id="location_incident2">中的谷歌地图;而如果模式弹出菜单带有id = 3,它会将谷歌地图显示在<div id="location_incident3">中,依此类推

以下是我的代码:

function locationOfIncident3(current)
{
    var lat = current.coords.latitude;
    latIncident = lat;
    var lon = current.coords.longitude;
    lonIncident = lon;
    var mapOption={
        center: new google.maps.LatLng(lat, lon),
        zoom: 15,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map3 = new google.maps.Map(document.getElementById('location_incident3'), mapOption);
    marker3 = new google.maps.Marker({
        position: new google.maps.LatLng(lat, lon),
        map: map3,
        draggable: true,
        title: 'Location of Incident'
    });
    google.maps.event.addListener(marker3, 'dragend', function(res){
        latIncident = res.latLng.lat();
        lonIncident = res.latLng.lng();
        getAddress3(latIncident, lonIncident);
    });
}

如果不需要保留map3marker3。。。函数之外的变量,应该使用局部变量,即var mapvar market。。。

编号字符串可以使用+级联运算符动态创建,如下所示:

function locationOfIncident(n, current) {
  ...
  var map = new google.maps.Map(document.getElementById('location_incident' + n), mapOption);
  ...
}

您可以重构对locationOfIncident1locationOfIncident2、…的调用。。。在文本编辑器中使用正则表达式替换:locationOfIncident('d+)'s*'(=>locationOfIncident'($1,