first commit
This commit is contained in:
54
dev/plugins/gmaps/lib/gmaps.events.js
Normal file
54
dev/plugins/gmaps/lib/gmaps.events.js
Normal file
@@ -0,0 +1,54 @@
|
||||
GMaps.prototype.on = function(event_name, handler) {
|
||||
return GMaps.on(event_name, this, handler);
|
||||
};
|
||||
|
||||
GMaps.prototype.off = function(event_name) {
|
||||
GMaps.off(event_name, this);
|
||||
};
|
||||
|
||||
GMaps.custom_events = ['marker_added', 'marker_removed', 'polyline_added', 'polyline_removed', 'polygon_added', 'polygon_removed', 'geolocated', 'geolocation_failed'];
|
||||
|
||||
GMaps.on = function(event_name, object, handler) {
|
||||
if (GMaps.custom_events.indexOf(event_name) == -1) {
|
||||
if(object instanceof GMaps) object = object.map;
|
||||
return google.maps.event.addListener(object, event_name, handler);
|
||||
}
|
||||
else {
|
||||
var registered_event = {
|
||||
handler : handler,
|
||||
eventName : event_name
|
||||
};
|
||||
|
||||
object.registered_events[event_name] = object.registered_events[event_name] || [];
|
||||
object.registered_events[event_name].push(registered_event);
|
||||
|
||||
return registered_event;
|
||||
}
|
||||
};
|
||||
|
||||
GMaps.off = function(event_name, object) {
|
||||
if (GMaps.custom_events.indexOf(event_name) == -1) {
|
||||
if(object instanceof GMaps) object = object.map;
|
||||
google.maps.event.clearListeners(object, event_name);
|
||||
}
|
||||
else {
|
||||
object.registered_events[event_name] = [];
|
||||
}
|
||||
};
|
||||
|
||||
GMaps.fire = function(event_name, object, scope) {
|
||||
if (GMaps.custom_events.indexOf(event_name) == -1) {
|
||||
google.maps.event.trigger(object, event_name, Array.prototype.slice.apply(arguments).slice(2));
|
||||
}
|
||||
else {
|
||||
if(event_name in scope.registered_events) {
|
||||
var firing_events = scope.registered_events[event_name];
|
||||
|
||||
for(var i = 0; i < firing_events.length; i++) {
|
||||
(function(handler, scope, object) {
|
||||
handler.apply(scope, [object]);
|
||||
})(firing_events[i]['handler'], scope, object);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user