如何在google maps searchBox更新结果列表时触发事件?

时间:2017-07-02 23:54:23

标签: javascript jquery google-maps-api-3

我试图找出.pac-container的高度是否发生了变化(看到图中的绿色边框)。我尝试通过输入字段的按键来触发事件。

$('#pac-input').on('keypress', function() {
    var height = $('.pac-container').outerHeight();
});

但是结果列表的更新是在几毫秒之后发布的,因此更新时间很晚。因此,我想在结果列表发生变化时触发我的功能。

searchBox classes

结果列表更新时是否有任何可以检查的事件?

更新

与此同时,我的解决方案是设置多个setTimeout()事件,这些事件并不是很优雅,但是它会稍微延迟。

$('#pac-input').on('focus keypress', function() {        
        checkPacHeight();
        setTimeout(checkPacHeight, 500);
        setTimeout(checkPacHeight, 1000);
    });

function checkPacHeight(){
    var count = $(".pac-container .pac-item").length;
    var height = $('.pac-container').outerHeight();
    console.log(count+' results and height is: '+height);
}

1 个答案:

答案 0 :(得分:0)

从您链接的文档页面中获取,更改地点时会触发一个事件。

searchBox.addListener('places_changed', function() {
    doSomeThings();
}

检查元素的高度是在框外思考,但最好的解决方案是针对这种情况的事件监听器。