2016-04-09 15 views
1

İçinde 8 PHP dosyası bulunan bir ana PHP dosyası var. Önyükleme sınıfı "Modal" kullanıyorum ve her modalda google map kullanıyorum. Bu yüzden google haritasını göstermek için farklı kimliklerim var, ancak işlevsellik aynı. Her modal pencereden biri olduğunda, işlev tetiklenir ve google haritayı gösterir. Her kimlik için 8 farklı işlevle uygularım.Farklı işlevlere sahip bir işlev nasıl tetiklenir

İstediğim şey, yalnızca tek bir işlev uygulamak için herhangi bir yol var mı? id = 1 ile modal pop-up, bu <div id="location_incident1"> ve id = 2 ile modal pop-up eğer google harita gösteriyorsa

Yani, daha açık bir şekilde söylemek, bu <div id="location_incident2"> google harita gösterir ve kalıcı pop-up id = 3 ile, eğer <div id="location_incident3"> ve google harita gösterir yakında. , Fonksiyonun dışında map3, marker3 ... değişkenleri korumak gerekmiyorsa

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); 
    }); 
} 
+2

Simpy ikinci parametre olarak işleve id geçmesi ... – CBroe

+0

için herhangi bir neden 'latIncident 'map3',… var map3'ün aksine global değişkenler olmalı mı, ...? – Aprillion

cevap

0

, yerel değişkenler kullanmalısınız yani var map, var market:

İşte kısaca benim kodudur. ..

sayılı dizesi şu şekilde + birleştirme operatörü kullanarak dinamik olarak oluşturulabilir:

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

Ve locationOfIncident1 için, locationOfIncident2 ... Bir düzenli ifade ile metin editörü yerine çağrı planı ayrı: locationOfIncident(\d+)\s*\( =>locationOfIncident\($1,

İlgili konular