我曾经使用下面的代码来捕捉用户的 Enter 键事件,如果用户没有选择它们中的任何一个(即没有 pac-item 标记为 pac -项目选择)。
var input = document.getElementById('pac-input')
var autocomplete = new google.maps.places.Autocomplete(input)
google.maps.event.addDomListener(input, 'keypress', function(e) {
if (e.keyCode===13 && !e.triggered) {
var suggestion_selected = document.querySelectorAll('.pac-item-selected').length > 0
if (!isLatLngInInputBox && !suggestion_selected) {
google.maps.event.trigger(this,'keydown',{keyCode:40})
google.maps.event.trigger(this,'keydown',{keyCode:13,triggered:true})
}
}
})
Run Code Online (Sandbox Code Playgroud)
但是,从 Google Maps JavaScript API v3.35 开始,我会Uncaught TypeError: a.stopPropagation is not a function在google.maps.event.trigger(this,'keydown',{keyCode:40}).
结果查了一下文档,发现google.maps.event的trigger方法变了。第三个参数现在被声明为 eventArgs 而不是 var_args。
我试图弄清楚如何适应它并修改了代码,例如:
google.maps.event.addDomListener(input, 'keypress', function(e) {
console.log(e.key)
if (e.key==="Enter" && !e.triggered) {
var suggestion_selected = document.querySelectorAll('.pac-item-selected').length > 0
if …Run Code Online (Sandbox Code Playgroud)