У меня есть фрагмент js, который позволяет пользователю выбрать из списка переключателей в элементе div, взять из него адрес и заполнить некоторые поля.Это автоматический поиск адреса из API.
При выборе мобильных устройств на сенсорных устройствах возникают проблемы.на рабочем столе пользователь нажимает, и он скрывает список и заполняет поля формы этими данными из переключателя.На мобильном телефоне, хотя при прокрутке списка вниз он автоматически выбирает один, а затем очищается.это неправильно, ему нужно позволить пользователю прокручивать и продолжать до тех пор, пока он не найдет правильный адрес, и только до тех пор, пока он не коснется / не нажмет кнопку-переключатель, затем исчезнет и заполнит поля формы. Вот что у меня так далеко:
// tells user its a tap or scroll
$(document).on('touchstart', function() {
detectTap = true; //detects all touch events
});
$(document).on('touchmove', function() {
detectTap = false; //Excludes the scroll events from touch events
});
click: function(e) {
// Only trigger if it's a click with the mouse, not caused by using arrow keys
if (e.type === "click" && e.offsetX !== 0 && e.offsetY !== 0 || e.type === "touchend") {
detectTap = true;
if (detectTap == false){
e.preventDefault();
//select_address(model, item, address_results, status_element);
$(model+'_results').show();
$(model+'_output').hide();
} else {
e.preventDefault();
select_address(model, item, address_results, status_element);
$(model+'_results').hide();
$(model+'_output').show();
}
}
// if (e.type === "click" && e.offsetX !== 0 && e.offsetY !== 0 || e.type === "touchmove") {
// e.preventDefault();
// //select_address(model, item, address_results, status_element);
// $(model+'_results').show();
// $(model+'_output').hide();
// }
// if (e.type === "tap" && e.offsetX !== 0 && e.offsetY !== 0) {
// //return false;
// // e.preventDefault();
// select_address(model, item, address_results, status_element);
// $(model+'_results').hide();
// $(model+'_output').show();
// }
},
Этот фрагмент кода определяет, чтобы выбрать или скрыть информацию о клике:
e.preventDefault();
select_address(model, item, address_results, status_element);
$(model+'_results').hide();
$(model+'_output').show();
Что я не могу понять, так это то, что касание не работает; не работает на мобильном телефоне и почему прокруткапросто автоматически выбирает и скрывает содержимое.