我正在尝试制作我的第一个jQuery插件。基本上它就像goMap地图的包装,只要有人在谷歌地图上移动标记,它就会更新一些纬度和经度文本字段。
我有这样设置(这看起来非常粗糙,因为我在coffeescript中编写它并且只是在我编写问题时进行翻译,因此忽略任何缺少的冒号或其他任何请求!):
(function($) {
$.fn.correctionMap = function(options) {
defaults = {
latFieldSelector: "#listing_latitude"
longFieldSelector: "#listing_longitude"
resetLinkSelector: "#reset_marker_link"
marker_id: 'listing_marker'
}
options = $.extend(defaults, options);
// grab the text field elements
latField = $(options.latFieldSelector)
longField = $(options.longFieldSelector)
// inialise the map go-ordinates from the
// values in the text fields
initialLat = Number(latField.val())
initialLong = Number(longField.val())
// build the options object for the goMap plugin
map_options = {
longitude: initialLong
latitude: initialLat
zoom: 16
maptype: 'ROADMAP'
markers: [{
longitude: initialLong
latitude: initialLat
draggable: true
id: options.marker_id
}]
};
// add the map to the div
return this.goMap(map_options)
)(jQuery)
然后,当我用$("#correction_map").correctionMap()
调用它时似乎没有做任何事情。然而,当我从插件内部console.log this.goMap(map_options)
时,看起来它被初始化很好(粗略检查)。我做错了还是什么?
答案 0 :(得分:0)
当你使用goMap时,你必须使用CSS给出作为地图目标的div的高度和宽度。我的问题中的Javascript很好。糟糕!