2016-08-17 41 views
0

我正在嘗試使用jQuery來更改自定義地圖,具體取決於在選擇菜單中選擇的選項。目前,我有以下幾點:jQuery .on()select

<select> 
     <option lat="37.0902" lng="95.7129" class="country1" zoom="4" map_id="1" value="us">United States</option> 
</select> 

我知道,如果它是一個形象,我渴望徘徊,jQuery的意思來處理這將是:

jQuery('body').on('mouseenter', 'country1', function(event, ui) { 
    var mid = jQuery(this).attr('map_id'); 
    var mlat = jQuery(this).attr('lat'); 
    var mlon = jQuery(this).attr('lng'); 
    var mzoom = jQuery(this).attr('zoom'); 
    var myLatLng = new google.maps.LatLng(mlat,mlon); 
    MYMAP[mid].map.setCenter(myLatLng); 
    MYMAP[mid].map.setZoom(mzoom); 
}); 

不過,我不確定在交互對象是選擇菜單而不是圖像的場景中要做什麼。謝謝!

+1

' 'country1''缺少'.'應該是'' .country1' ' – guradio

+1

爲什麼不使用'$('select')。on('change',function ...'? – Dekel

+0

@Dekel我不確定,說實話我對jQuery不是很有經驗,所以我不是確定要做什麼 $('select')。on('cha nge',function ... 取代 jQuery('body')。on(.... ? – finaris

回答

1

使用更改事件。

添加一個id或class您選擇參考

<select id="country"> 
    <option lat="37.0902" lng="95.7129" class="country1" zoom="4" map_id="1" value="us">United States</option> 
</select> 

,然後改變你的javascript來:

$('#country').change(function(event, ui) { 
    var mid = jQuery(this).attr('map_id'); 
    var mlat = jQuery(this).attr('lat'); 
    var mlon = jQuery(this).attr('lng'); 
    var mzoom = jQuery(this).attr('zoom'); 
    var myLatLng = new google.maps.LatLng(mlat,mlon); 
    MYMAP[mid].map.setCenter(myLatLng); 
    MYMAP[mid].map.setZoom(mzoom); 
});