Google Places Autocomplete を使用しています。フォーム フィールドでイベントが発生し、提案が存在する場合に、結果リストの一番上の項目でクリック イベントを発生させたいだけです。
var pac_input = document.getElementById('pick-auto');
(function pacSelectFirst(input) {
// store the original event binding function
var _addEventListener = (input.addEventListener) ? input.addEventListener : input.attachEvent;
function addEventListenerWrapper(type, listener) {
// Simulate a 'down arrow' keypress on hitting 'return' when no pac suggestion is selected,
// and then trigger the original listener.
if (type == "keydown" || type == "blur") {
var orig_listener = listener;
listener = function(event) {
var suggestion_selected = $(".pac-item-selected").length > 0;
var keyCode = event.keyCode || event.which;
if ((keyCode === 13 || keyCode === 9) && !suggestion_selected) {
var simulated_downarrow = $.Event("keydown", {
keyCode: 40,
which: 40
});
orig_listener.apply(input, [simulated_downarrow]);
} else if(event.type === 'blur') {
pac_input.value =
$(".pac-container .pac-item:first-child").text();
// $(".pac-container").delegate(".pac-item:first-child","click",function(){
// console.log("success");
// });
$(".pac-container .pac-item:first-child").bind('click',function(){
console.log("click");
});
}
orig_listener.apply(input, [event]);
};
}
// add the modified listener
_addEventListener.apply(input, [type, listener]);
}
if (input.addEventListener)
input.addEventListener = addEventListenerWrapper;
else if (input.attachEvent)
input.attachEvent = addEventListenerWrapper;
})(pac_input);
$(function() {
var autocomplete = new google.maps.places.Autocomplete(pac_input);
});