我想刪除事件偵聽器,點擊添加:gmap3刪除事件偵聽器
var events = {
click: function() {
// crazy stuff here :-)
}
};
$(where).gmap3(
{
events: events
}
);
需要這樣的東西:
$(where).gmap3().removeEventListener('click');
我想刪除事件偵聽器,點擊添加:gmap3刪除事件偵聽器
var events = {
click: function() {
// crazy stuff here :-)
}
};
$(where).gmap3(
{
events: events
}
);
需要這樣的東西:
$(where).gmap3().removeEventListener('click');
我解決了不同的方式這個問題:
var events = {
click: function() {
if (P.settings.mapPinActive === false) {
return;
}
// crazy stuff here :-)
}
};
相反裝拆事件,在設置全局屬性對象。
沒有意識到gmap3是一個包裝庫。我刪除重複的評論。
通過瀏覽gmaps3文檔,我沒有看到任何具體的刪除監聽器的庫函數,但是您可以使用action: 'get'
來獲取標記,然後清除監聽器。
這裏是一個例子,從文檔更改。我爲標記添加了一個名稱和標記屬性,並且在該腳本的末尾,我使用tag:'2'
從標記中刪除了mouseover
聽衆。由於某種原因,這個庫很善變,並且希望name
和tag
屬性都能找到標記。
$('#test').gmap3({
action: 'init',
options: {
center: [46.578498, 2.457275],
zoom: 5
}
}, {
action: 'addMarkers',
markers: [
{
name : 'marker',
tag: '1',
lat: 48.8620722,
lng: 2.352047,
data: 'Paris !'},
{
name : 'marker',
tag: '2',
lat: 46.59433,
lng: 0.342236,
data: 'Poitiers : great city !'},
{
name : 'marker',
tag: '3',
lat: 42.704931,
lng: 2.894697,
data: 'Perpignan ! GO USAP !'}
],
marker: {
options: {
draggable: false
},
events: {
mouseover: function(marker, event, data) {
var map = $(this).gmap3('get'),
infowindow = $(this).gmap3({
action: 'get',
name: 'infowindow'
});
if (infowindow) {
infowindow.open(map, marker);
infowindow.setContent(data);
} else {
$(this).gmap3({
action: 'addinfowindow',
anchor: marker,
options: {
content: data
}
});
}
},
mouseout: function() {
var infowindow = $(this).gmap3({
action: 'get',
name: 'infowindow'
});
if (infowindow) {
infowindow.close();
}
}
}
}
});
//get the marker by name and tag
var mark = $('#test').gmap3({
action: 'get',
name:'marker',
tag: '2'
});
//remove the event listener
google.maps.event.clearListeners(mark, 'mouseover');
以下是此腳本工作的示例:http://jsfiddle.net/5GcP7/。當被淹沒時,中間的標記不會打開infowindow。
爲此,我需要引用特定的事件偵聽器對象。你知道如何將它添加到上面的代碼嗎? –