Javascript 如何像这样初始化jQuery小部件:var newMap=xgis.map(';#map';,options);
也许这个问题已经发布在这里了,但是我搜索了一下,没有找到我想要的详细案例 我有在OpenLayers上运行的GIS API。我有一个名为“xgis”的jQuery小部件,用于创建OpenLayers地图 小部件的定义如下:Javascript 如何像这样初始化jQuery小部件:var newMap=xgis.map(';#map';,options);,javascript,jquery,jquery-ui,openlayers,gis,Javascript,Jquery,Jquery Ui,Openlayers,Gis,也许这个问题已经发布在这里了,但是我搜索了一下,没有找到我想要的详细案例 我有在OpenLayers上运行的GIS API。我有一个名为“xgis”的jQuery小部件,用于创建OpenLayers地图 小部件的定义如下: $.widget('xgis.xgis', { options: { opt1: true, opt2: [], opt3: '' }, method1: function() { ...
$.widget('xgis.xgis', {
options: {
opt1: true,
opt2: [],
opt3: ''
},
method1: function() {
...
},
method2 ...,
...
});
var newMap = xgis.map('#map', options);
当我想要创建地图时,我只需执行以下操作:
var newMap = $('#map').xgis(options);
其中“#map”是放置映射的DIV的ID,“options”是包含映射初始化选项的对象
现在,让我们解释一下我想要什么。我想更改GIS API的整个类结构。我想上这样的课:
*xgis(主类)
*xgis.map(地图类)
*xgis.layer(图层类)
等
除了小部件,它正在工作。我想像这样初始化地图:
$.widget('xgis.xgis', {
options: {
opt1: true,
opt2: [],
opt3: ''
},
method1: function() {
...
},
method2 ...,
...
});
var newMap = xgis.map('#map', options);
如您所见,我需要一种初始化映射的简单方法,从而稍微隐藏了它是jQuery.ui小部件的事实
有没有可能改变小部件的结构,以使这种新的初始化方式工作
谢谢我不认为你可以直接用
$.widget
来做。但你可以把它藏起来。使用普通API创建小部件,名称如xgis\u map
,xgis\u layer
等,然后编写一个包装器:
var xgis = {
map: function(selector, options) {
return $(selector).xgis_map(options);
},
layer: function(selector, options) {
return $(selector).xgis_layer(options);
},
...
};
非常感谢您@Barmar。这很容易,但我没有想到这正是我想要的。谢谢