Я пытаюсь сделать свой первый плагин jQuery. По сути, это как оболочка для карты goMap , которая обновляет некоторые текстовые поля широты и долготы всякий раз, когда кто-то перемещает маркер на карте Google.
Я настроил это так (это будет выглядеть довольно грубо, потому что я написал это в 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)
изнутри плагина, похоже, что он инициализируется нормально (беглый осмотр). Я делаю возврат неправильно или что-то?