Итак, я видел много тем о проблеме iOS с акцентом на элементе ввода/текстовой области. (См. здесь и здесь). Похоже, что iOS не позволит вам вручную сфокусироваться на одном из этих элементов и требует, чтобы это было настоящее касание/щелчок, чтобы сфокусироваться на элементе.
Я пробовал имитировать щелчок, инициировать клик, просто сразу выполнять click()... всевозможные вещи.
Вот мой текущий обходной путь что я пытаюсь реализовать:
Код: Выделить всё
$scope.gotoElement = function(eID) {
// call $anchorScroll()
$scope.smoothScrollTo(eID).then(function() {
clickElement('#textarea');
});
}
function clickElement(e) {
$(e).on('touchstart', function() {
//$(e).val('touchstart');
$(e).focus();
});
$(e).trigger('touchstart');
}
Вам не нужно беспокоиться о функции прокрутки, я знаю, что она работает, и я достаточно ее протестировал. Закомментированный $(e).val('touchstart') работает без проблем при изменении текста текстовой области, но .focus() не работает в iOS. Я тестировал это на устройстве Android, и оно работает нормально, но на iOS клавиатура просто не отображается. Иногда на полсекунды начинает появляться клавиатура, а потом снова исчезает.
Я просмотрел другие темы, как упоминал выше, и не могу кажется, я понял, как написать обходной путь для этой проблемы.
Есть идеи?
Подробнее здесь:
https://stackoverflow.com/questions/307 ... t-textarea