【发布时间】:2014-04-25 21:45:17
【问题描述】:
我正在使用 typeahead-addresspicker jquery 插件来提供自动完成字段和地图供用户选择位置。
该插件工作正常,可以找到任何地址或位置并在地图上放置一个标记。但是,设置地址后,我想将 Google 地理编码值插入表单字段。为此,我监听了在代码中触发的 addresspicker:selected 事件,但未执行处理程序。
script(src='/js/lib/jquery/jquery-2.1.0.min.js')
script(src='/js/lib/typeahead/typeahead.js')
script(src='/js/lib/typeahead/typeahead-addresspicker.js')
script.
$.noConflict();
jQuery(document).ready(function($) {
var addressPicker = new AddressPicker({map: {id: '#map', options:{center: new google.maps.LatLng(51.0360272, 3.7359072), zoom: 8}},
marker: {draggable: true, visible: true, position:new google.maps.LatLng(51.0360272, 3.7359072)},
zoomForLocation: 18,
reverseGeocoding: true});
$('#address').typeahead(null, {
displayKey: 'description',
source: addressPicker.ttAdapter()
});
addressPicker.bindDefaultTypeaheadEvent($('#address'));
$(addressPicker).on('addresspicker:selected', function (event, result) {
$('#lat_input').val(result.lat());
$('#lng_input').val(result.lng());
$('#number_input').val(result.nameForType('street_number'));
$('#name_input').val(result.nameForType('premise'));
$('#street_input').val(result.nameForType('street_address'));
$('#suburb_input').val(result.nameForType('locality'));
$('#state_input').val(result.nameForType('administrative_area_level_1'));
$('#postcode_input').val(result.nameForType('postal_code'));
$('#country_input').val(result.nameForType('country'));
});
});
我是否遗漏了一些关于 Jquery 事件的内容?
【问题讨论】:
-
如果您在控制台记录 result.lat(),甚至是结果对象,它是否正确返回并显示在您的调试控制台中?
-
我应该在哪里控制台记录 result.lat?结果处理程序未触发。
-
你如何验证结果处理程序没有被触发?
-
在 Chrome 开发者工具中设置断点。
标签: javascript jquery pug typeahead.js