我正在尝试编写一个jQuery插件,我需要在初始化地图后添加或删除标记。
代码看起来像
(function($, window, document) {
"use strict";
var pluginName = "MapPlugin"
var defaults = {
zoom : 10,
coords : [48.895651, 2.290569],
type : "ROADMAP",
debug : false,
langage : "english",
overviewMapControl: false,
streetViewControl: false,
scrollwheel: false,
mapTypeControl: false,
};
function MapPlugin( element, options ) {
this.element = element
this.settings = $.extend( {}, defaults, options );
this._name = pluginName;
switch( this.settings.type ) {
case 'ROADMAP':
case 'SATELLITE':
case 'HYBRID':
case 'TERRAIN':
...
default:
this.settings.type = google.maps.MapTypeId.ROADMAP;
break;
}
this.init();
}
// Avoid MapPlugin.prototype conflicts
$.extend( MapPlugin.prototype, {
init: function() {
var map = new google.maps.Map( this.element , {
zoom: this.settings.zoom,
center: new google.maps.LatLng(..., ...),
...
});
$(this).data('googleMap', map);
}
});
$.fn[ pluginName ] = function( options ) {
return this.each( function() {
if ( !$.data( this, "plugin_" + pluginName ) ) {
$.data( this, "plugin_" + pluginName, new MapPlugin( this, options ) );
}
} );
};
})(jQuery, window, document);
从我的JavaScript中我称之为
map.MapPlugin({
zoom: 10, // Initial zoom level (optional)
coords: [48.895651, 2.290569], // Map center (optional)
type: "ROADMAP" // Map type (optional)
});
由于页面上可以有多个地图,所以我没有返回MapPlugin的实例。但是现在如果我想调用任何Plugin方法,我需要一些如何访问实例。
但不知道如何访问实例。有什么想法吗?