如何隐藏/禁用google.maps.places.Autocomplete关闭按钮?

时间:2016-06-20 07:26:39

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

我有google.maps.places.Autocomplete对象,我需要隐藏或禁用每次输入文本时出现的“关闭按钮X”。如果可能的话,更好的是获取并覆盖onClickEvent上的“关闭按钮”吗?

1 个答案:

答案 0 :(得分:1)

对于事件的解除绑定,请使用google.maps.event.clearInstanceListeners。 。

为了删除自动完成功能,没有实现的方法。您可以在创建自动完成之前创建输入的克隆,如果要删除自动完成功能,请使用克隆替换当前输入。

(function(ac) {
google.maps.places.Autocomplete = function(node, opts) {
var clone = node.cloneNode(true),
pac = new ac(node, opts);

google.maps.event
.addListener(pac,
'remove',
function(restore) {
google.maps.event.clearInstanceListeners(pac);
google.maps.event.trigger(node,'blur');
google.maps.event.clearInstanceListeners(node);
if (restore===true) {
node.parentNode.replaceChild(clone, node);
} else {
node.parentNode.removeChild(node)
}
});
return pac;

}
}
(google.maps.places.Autocomplete));
//-------------------------------------------------------------------------- 

function initialize() {

autocomplete = new google.maps.places
.Autocomplete(document.getElementsByTagName('INPUT')[0], {
types: ["geocode"]
});
}

google.maps.event.addDomListener(window, 'load', initialize);

<script src="https://maps.googleapis.com/maps/api/js?v=3&libraries=places&.js"></script>
<input/>
<span>
<input type="button" value="remove input" 
onclick="google.maps.event.trigger(window.autocomplete,'remove');
this.parentNode.parentNode.removeChild(this.parentNode);"/>
<input type="button" value="remove autocomplete-functionality" 
onclick="google.maps.event.trigger(window.autocomplete,'remove',true);
this.parentNode.parentNode.removeChild(this.parentNode);"/>
<span>