JQuery事件已触发,但未调用处理程序

JQuery event triggered but handler not called

本文关键字:调用 处理 程序 事件 JQuery      更新时间:2023-09-26

我正在使用typeahead addresspicker jquery插件来提供一个自动完成字段和一个地图,供用户选择位置。

该插件运行良好,可以找到任何地址或位置,并在地图上标记。然而,当设置地址时,我想将Google Geocode值插入表单字段。为此,我听取了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事件的某些内容?

修复了它,它是noConflict()函数。去掉它,效果很好。