Как создать плагин jQuery, который использует другой плагин jQuery? - PullRequest
0 голосов
/ 04 августа 2011

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

1 Ответ

0 голосов
/ 04 августа 2011

Оказывается, вы должны задать div, который является целью для карты, высоту и ширину с помощью CSS, когда вы используете goMap.Javascript в моем вопросе в порядке.Упс!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...