我有一個JSF2 .xhtml頁面,其中包含一個包含primefaces p:gmap組件的複合組件。 我正在嘗試創建一個JavaScript偵聽器,它將捕獲來自Google地圖控件的縮放事件。 我已經能夠做到這一點,當在地圖上不是在複合組件通過添加以下的javascript聽者:如何在JavaScript偵聽器中引用複合組件?
function initialize() {
var mapOptions = {
tilt: 0,
panControl: false
};
google.maps.event.addListener(gmap.getMap(), 'zoom_changed', function() {
alert('zoom_changed');
var zoom = gmap.getMap().getZoom();
var mapZoomUpdate = document.getElementById('mapZoomUpdate');
mapZoomUpdate.value = ''+zoom;
changeMapZoomBtn.click();
});
}
google.maps.event.addDomListener(window, 'load', initialize);
在這種情況下,「GMAP」是primefaces GMAP組件ID。
但是,當它位於複合組件內部時,我無法引用gmap組件。 我知道我需要添加複合組件id作爲參考的一部分,但我不知道正確的語法。
組件本身位於名爲「formCenter」的表單中,其中prependId =「false」。 當我看網頁代碼中,我看到了參考GMAP成分是: ID =「eventTransactionsMapComp:GMAP」
我已經試過了,沒有運氣的addListener參考以下內容:
谷歌。 maps.event.addListener(eventTransactionsMapComp.gmap.getMap(), '部分zoom_changed',函數(){
google.maps.event.addListener(formCenter.eventTransactionsMapComp.gmap.getMap(),「部分zoom_changed ',function(){
我想,也許我需要通過使用以下類型的參考抓取組件ID:
google.maps.event.addListener(的document.getElementById( 'formCenter:eventTransactionsMapComp:GMAP'。)的GetMap( ),'zoom_changed',function(){
但是這也行不通。
任何人都可以幫助我正確的語法,以添加偵聽器時引用gmap組件?
感謝