| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- (function (window, document, undefined) {
- L.Control.Custom = L.Control.extend({
- version: '1.0.1',
- options: {
- position: 'topright',
- id: '',
- title: '',
- classes: '',
- content: '',
- style: {},
- datas: {},
- events: {},
- },
- container: null,
- onAdd: function (map) {
- this.container = L.DomUtil.create('div');
- this.container.id = this.options.id;
- this.container.title = this.options.title;
- this.container.className = this.options.classes;
- this.container.innerHTML = this.options.content;
- for (var option in this.options.style)
- {
- this.container.style[option] = this.options.style[option];
- }
- for (var data in this.options.datas)
- {
- this.container.dataset[data] = this.options.datas[data];
- }
- /* Prevent click events propagation to map */
- L.DomEvent.disableClickPropagation(this.container);
- /* Prevent right click event propagation to map */
- L.DomEvent.on(this.container, 'contextmenu', function (ev)
- {
- L.DomEvent.stopPropagation(ev);
- });
- /* Prevent scroll events propagation to map when cursor on the div */
- L.DomEvent.disableScrollPropagation(this.container);
- for (var event in this.options.events)
- {
- L.DomEvent.on(this.container, event, this.options.events[event], this.container);
- }
- return this.container;
- },
- onRemove: function (map) {
- for (var event in this.options.events)
- {
- L.DomEvent.off(this.container, event, this.options.events[event], this.container);
- }
- },
- });
- L.control.custom = function (options) {
- return new L.Control.Custom(options);
- };
- }(window, document));
|